![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
mas sobre pchar
es verdad!!! gracias...
No os lo vais a creer pero sigo teniendo problemas Seoane lo que me has recomendado me ha parecido genial pero ahora estoy intentando añadir un pchar a otro de la siguiente manera y no lo consigo:
En BufferAux solo tengo el valor de la cabecera, pero no me añade el de buffer. Lo he comprobado paso a paso y en buffer si mete contenido...me estoy montando unos lios...Perdonar por ser tan pesao Última edición por dec fecha: 25-05-2006 a las 20:41:48. |
|
#2
|
||||
|
||||
|
Creo que el problema debe de estar aqui:
Date cuenta que sizeof(buffer) siempre valdra 4 ya que ese es el tamaño de un PChar (si buffer es un PChar que tampoco lo aclaras), y no tiene nada que ver con el contenido de la memoria al que apunta ese puntero. Pero la verdad es que ya me estoy empezando a perder con tu codigo No estoy seguro de lo que estas intentando hacer pero tiene que haber alguna manera mas sencilla de hacerlo. |
|
#3
|
|||
|
|||
|
aclaración
Perdona..esque no me aclaro ni yo.
Quiero mandar un fichero de un pc a otro por medio de sockets. Eso es fácil. Me exigen que no se envíe el fichero entero si no a trozos. He conseguido mandarlos a trozos(me ha costado pero lo logré...) y ahora lo que quiero es incluir en cada paquete que mando una cabecera con tamaño de paquete y tipo...(En realidad no sirve para nada pero lo tengo que hacer) vamos que tengo que mantar paquetes que tengan: -tamaño -tipo -datos cuando se reciban estos paquetes tengo que extraer la cabecera y incluir los datos en el fichero... Y eso es todo... He trabajado otras veces con sockets pero siempre he mandado texto y trabajaba bastante bien, pero como tengo que poder mandar ficheros de todo tipo.. Otros compañeros míos lo han hecho con Java mandando un objeto trama con los campos de tamaño...y bytes y les ha salido, pero yo me he empeñado en hacerlo con delphi. Me esta agobiando un montón esto, gracias por echarme una mano de verdad...(: por cierto, el buffer...anteriormente hago getmen(buffer,1024) Última edición por Status Quo fecha: 25-05-2006 a las 20:56:11. |
|
#4
|
||||
|
||||
|
Se me ocurre que puedes usar records para hacer lo que te pidieron. Me explico, primero declaras un tipo de record que sera el que utilices para enviar y recibir los trozos:
Luego solo tienes que usar ese paquete durante la transmision:
Y durante la recepcion
El unico problema es que si el ultimo paquete no lo llenamos por completo, estaremos enviando mas bytes de los necesarios, pero como tambien enviamos el tamaño ese no seria un problema. Y es enormemente mas sencillo que andar haciendo malabares con punteros ¿que te parece?Última edición por seoane fecha: 25-05-2006 a las 21:43:36. |
|
#5
|
|||
|
|||
|
Gracias!!!!!!!!!
nunca he trabajado con eso (soy muyyyy novato) Me parece que lo que me has dicho va a ser la solución a mis males... ya me temía yo que me estaba complicando demasiado la vida... Gracias, gracias de verdad... voy a ponerme a ello inmediatamente... ![]() Ni te imaginas el favor que me acabas de hacer!!!!!!!!!!!! Última edición por Status Quo fecha: 25-05-2006 a las 21:44:34. |
|
#6
|
||||
|
||||
No podiamos consentir que tus compañeros lo hiceran en Java y tu no lo hiceras en Delphi, por favor ... ![]() |
|
#7
|
|||
|
|||
|
jejeje...delphi al poder!!!
He utilizado lo de los record (que buena idea! ) y normalmente me va bien sobre todo en los ficheros jpg pequeños...Los word los estropea...no se. Vamos que a veces me va bien y a veces mal...Esta tarde cuando llegue a mi casa añado el código. Yo creeo que envíar, los envía bien...el problema creo que es al recibirlos porque a lo mejor no llegan completos, no sé... Yo cuando he utilizado socket para mandar texto lo iba encolando en un string, si la variable cola(de tipo string) era mayor que 2(tamaño del campo de tamaño de mensaje) cojía el tamaño (lo pasaba a entero). Luego comparaba el tamaño de la cola de mensajes con el campo de tamaño y si era mayor o igual extraía el mensaje y lo borraba de la cola... y de esta manera aseguraba que los mensajes llegaran completos Bueno eso hacía e iba muy bien. No se si será necesario encolar los bytes...(no tengo ni idea de como encolar, recoger en mi estructura y eliminar bytes de una cola de bytes pero bueno...) Bueno esta tarde os lo cuento mejor con código incluido a ver que os parece... ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Recorrer arreglo | Perrero80 | Varios | 3 | 18-05-2006 22:52:27 |
| Compatibilidad entre PChar y String | vick | Conexión con bases de datos | 5 | 24-10-2005 21:50:35 |
| ¿como pasar de String dentro de un PChar? | Moises22 | Varios | 6 | 27-09-2005 15:43:47 |
| Pchar y String | superhopi | Varios | 8 | 19-08-2004 09:54:06 |
| problemas de compatibilidad de tipos pchar y string | VRO | Varios | 2 | 13-05-2004 10:29:34 |
|