/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Socket entre Servidor en Linux i cliente en Windows

 
      Índice del Foro elrincondelc.com -> Programación en Servidores
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
xonix



Registrado: 20 Nov 2005
Mensajes: 1

MensajePublicado: 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

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Programación en Servidores
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com