| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
xonix
Registrado: 20 Nov 2005 Mensajes: 1
| Publicado: 21/11/2005 12:37 am | | | Título: Socket entre Servidor en Linux i cliente en Windows |
| Hola, Estoy liado en un proyecto en elq ue tengo una servidor en una máquina linux que está a la escucha de que se le envie un archivo. El cliente corre sobre una máquina windows i está implementado en c#. Me encuentro en la situación de que el servidor lee mas rápido del buffer que lo que el cliente tarda e escribir en el buffer i en transmitirlo.Ásí que el servidor solo me recibe 1024bytes en lugar de los 10231 que tendria que leer. La función de este programa es enviar una archivo des de el cliente windows al servidor linux i grabarlo alli en otro archivo.Alguien se ha encontrado con esta situación?Algun código de ejemplo?
Gracias. Podeis contactar conmigo en |
|
| Volver arriba | |
 |
macu
Registrado: 01 May 2005 Mensajes: 227 Ubicación: Galicia
| Publicado: 21/11/2005 9:36 am | | | Título: |
| Creo que por lo que pones envias caracter a caracter los datos del fichero, te recomiendo que pruebes a leer el fichero en el programa cliente y almacenes el contenido en un array, después usa la función send para enviar todo el contenido. El protocolo a usar supongo que será TCP, a pesar de ser seguro puede haber problemas en la lectura del buffer, deberá estar el servidor leyendo mientras los datos leidos sean menores que los datos de entrada. |
|
| Volver arriba | |
 |
_Leo_
Registrado: 20 Oct 2005 Mensajes: 285 Ubicación: Buenos Aires, Argentina
| Publicado: 21/11/2005 4:29 pm | | | Título: |
| No, macu, eso no le va a funcionar.
xonix, tenés que establecer un protocolo de comunicaciones entre tu servidor y tu cliente.
Un ejemplo ultra simple:
El cliene se contecta, y envía una estructura de datos con el nombre del archivo y el tamaño. El servidor le envía un valor fijo de OK El cliente comienza a enviar paquetes de 1024 bytes. El servidor lee (de un socket TCP), paquetes de 1024 bytes hasta completar el tamaño (del ultimo paquete solo utilizará una porción). Para esto usá un socket TCP común, de forma que el servidor pueda esperar a que haya datos que leer. Sino que bloquee.
Tal vez sería bueno que muestres el código del server. _________________ _Leo_ drk.com.ar
clasdix.com.ar |
|
| Volver arriba | |
 |
|
|