hola a todos!
estoy armando una pequeña aplicacion cliente/servidor con sockets. el
servidor esta armado en aix y los clientes en windows.
la cosa es sencilla, el servidor aix escucha en un socket y cuando le llega
una peticion se lanza un nuevo proceso (fork) en donde se conversa con el
cliente.
luego de la conexion, la conversacion es simple: el envio de un comando y su
respuesta por parte del servidor.
mi duda es la siguiente; ¿conviene tener abierto siempre el canal de
comunicacion (socket cliente y servidor) entre "charla" y "charla"? ¿o es
mejor abrir el canal, "conversar" y cerrar?
el tema es que la conexion no es muy rapida entre cliente y servidor y al
conectarse se tarda un tiempito, luego al tener el canal ya abierto la cosa
se pone un poco mas rapida...
la desventaja que tengo es que como utilizo timeout en los clientes, si se
produce un timeout (no por desconexion sino porque la respuesta tardo mucho),
y dejo el socket abierto para seguir utilizandolo... tengo problemas de
sincronizacion ya que al enviar el proximo mensaje puede ser que tenga en el
buffer de respuesta datos de lo que anteriormente habia dado timeout...
(espero se entienda)
realmente me gustaria saber cual es la mejor forma de trabajar en estos
casos y si es posible ver de donde obtener algo de info
desde ya mil gracias
egcito
Leer las respuestas