![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
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... ![]() |
|
#2
|
||||
|
||||
|
No tengo mucha experiencia con los componentes que usas (TClientSocket y TServerSocket, corrigeme si me equivoco), ni si quiera lo tengo en la paleta de componentes
Pero he estado haciendo unas pruebas y parece que no funciona mal del todo:
He utilizado el tipo NonBlocking aunque no me gusta este tipo de sockets, mas que nada porque me resultaba mas sencillo, ¿que tipo usas tu? Me gustaria echarle un vistazo a tu codigo. |
|
#3
|
|||
|
|||
|
Llevo toda la tarde sin internet
Gracias Seoane
, ahora te paso mi código...Perdona, me he tenido que ir a casa de mi primo...me he cambiado de proveedor de internet...y me han tenido sin internet hasta ahora ... Voy a preparar el código para ponerlo...Si lo quieres todo dime dónde lo subo o dónde te lo mando...Gracias por la ayuda de verdad...Este año tengo unos compañeros bastante pasotas y no estoy recibiendo ninguna ayuda por parte de ellos...todo lo contrario...es competencia pura... |
|
#4
|
|||
|
|||
|
Código
Hola Seoane.
Esto no está montado en mi aplicación porque me daba tantos poblemas que lo hice aparte. Está basado en uno que recomendaban en el club en una determinada página (no recuerdo cual). Voy a mirar lo que me has mandado y voy a tratar de montarlo todo en mi apliación, porque aquí por ejemplo mando los ficheros eligiendo el que quiero y en mi aplicación debo hacer que cada cierto tiempo mire a ver cuales han sido modificados, creados o borrados y los envíe al cliente. Una sincroniación de ficheros, todo lo que haga en el servidor debe hacerse en el cliente. En lo que te mando tengo dos socket, uno dedicado a mandar el tamaño del fichero (servidor -> cliente) a enviar y otro que envía el fichero (cliente ->servidor). Lo he hecho así por los problemas que me daba el meter la información en los fragmentos del fichero, pero ahora viendo que funciona lo que me estás aconsejando, voy a unificarlo todo y a emplear sólo un socket (que es cómo me han pedido que lo haga). El código para enviar ficheros es:
El código para recibir el fichero enviado es:
Voy a ponerme a currar como un loco y voy a mirarme bien lo que me has mandado. El código que he puesto a lo mejor está un poco caótico...bueno..voy a ir trabajando y luego te cuento. |
|
#6
|
|||
|
|||
|
Gracias!
Ahora estoy poniéndolo en un solol socket y haciendo que recorra un directorio y mande todos los ficheros que hay en el.
Miraré lo que me has dicho. Cuando complete todo te lo enseño. Gracias!! ![]() |
|
#7
|
|||
|
|||
|
He puesto un solo socket para envíar los paquetes y he puesto el record así:
type Paquete = record Tipo: Integer; Tamano: Integer; TamaTotal:Integer; NomFich:String; Buffer: array[0..1024] of Byte; end; No se si habrá algún problema con los strings pero el caso esque no me llega el nombre en el código de recepción... Pongo todo el código con el que estoy trabajando para hacer las pruebas(luego lo pasaré al que estoy haciendo yo...) No se lo que son los tipos NonBlocking yo utilizo de la paleta de componentes--> internet el componente clientsockect y serversocket... Seoane, te pongo el código este de pruebas...Cuando lo terminte(por favor que sea pronto) te paso el programa total...(como tu me digas que te viene mejor...) Este es el código que envía el fichero:
Perdonar, no se porqué se me ha ido toda la indentación... Última edición por Status Quo fecha: 28-05-2006 a las 16:49:16. |
![]() |
| 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 |
|