![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Transferencia de archivos con sockets
Buenas...
Antes de nada decir que he buscado y rebuscado tanto en los foros como en el google sobre este tema y aunque me he quemado las pestañas leyendo, intentando comprender y probando todo lo que he encontrado no hay manera... ![]() Para empezar no he encontrado por ningun lado la demo de las Indy que nombran en este hilo ya que con mi Delphi 5 no venian incluidas y en la version 10 que me baje de internet tampoco, y en la pagina no lo encuentro. El ejemplo de Zarko Gajic aqui tampoco me vale porque en la version 10 de las Indy ya no se usa AThread: TIdPeerThread como parametro sino AContext: TIdContext y no se como adaptarlo. Este ejemplo tampoco me funciona, no me da error simplemente no hace nada... Y asi una lista bastante larga... Uso Delphi 5 y los componentes Sockets que trae. Es una aplicacion para mandar y recibir determinados archivos entre cliente y servidor. Lo tipico es un servidor que recibe demandas del cliente, lo que pasa es que si hay un router entonces hay que configurarlo para poder conectar cliente y servidor. Para evitar esto lo que hago es usar la aplicacion cliente como servidor, es decir, el cliente comprueba cada segundo si hay alguna peticion del servidor, que ejecuto yo con mi router ya configurado. Ya he conseguido ver y seleccionar las carpetas del cliente desde el servidor pero a la hora de recibir/mandar los archivos no hay forma...y no se por que Este es el codigo del cliente para enviar el archivo:
Y lo que no tengo claro todavia es el codigo del servidor, que por cierto esta sacado de la Biblia de Delphi 5, de Marco Cantú:
Esto me crea un archivo pero vacio, es decir,con cero kb. Creo, despues de todo lo que he leido y lo poco que he sacado en claro, que es porque de alguna manera hay que esperar a que termine de rellenarse el stream, que se comprueba comparando el tamaño del archivo con la cantidad recibida, pero, en teoria, ¿de esto no se encargan las lineas?: Pero tambien he leido aqui que: Código:
2)You need to store the received data globally, otherwise it will be lost in the next call of the event, you already do this with your stream. Just make sure the stream is not freed inside the event. Conclusion: Ni idea... ![]() ¿En que me estoy equivocando? ¿Como se puede hacer? ¿Algun trozo de codigo que funcione 100%? ¿Alguna sugerencia? Gracias y un saludo. Y perdon por el rollo y el interrogatorio final... ![]() JMGR |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
velocidad de transferencia muy lenta | lookmydoom | Redes | 1 | 26-08-2006 18:34:49 |
Transferencia lenta entre HDD ATA y HDD SATA | Sergio J. | Varios | 1 | 22-04-2005 17:30:16 |
Velocidad de transferencia... | eisenco | Internet | 0 | 21-03-2005 08:58:05 |
Transferencia FTP no se finaliza | DarkByte | Internet | 0 | 05-03-2005 10:39:35 |
Transferencia de archivos | Silver | Varios | 2 | 13-06-2003 23:12:38 |
![]() |
|