2011-04-25 17 views
5

El escenario es el siguiente:
Estoy enviando la mayor parte de los datos a los clientes desde mi aplicación de servidor C#.
De repente el flujo de datos se detuvo, no se actualizan los datos en el lado del cliente y el puerto se bloquea.El socket del servidor se bloquea en Close_Wait

Cuando esto ocurre, los síntomas secundarios del servidor son

  1. CLOSE_WAIT en ese puerto (netstat)
  2. operación se bloqueara (Código de error: 135) en Log.
  3. No se puede establecer una nueva conexión desde el cliente.
  4. Telnet falla a ese puerto

Actualmente reiniciar el servidor cada vez que se plantea la cuestión. Obviamente, esta no es una solución.

¿Alguien puede ofrecer una solución para socket de servidor pegado en Close_Wait en Windows Server 2008? Cualquier sugerencia para este escenario sería apreciada con gratitud.

Gracias de antemano.

Respuesta

1

CLOSE_WAIT significa que el par ha cerrado la conexión y TCP está esperando que la aplicación local cierre el socket.

Así que ciérrelo.

+0

Im usando IPWorks aquí no hay forma de enviar Apagado, solo cerrar(). Creo que cerrar internamente contiene shutdown(). No hay problema cuando uso mi Socket Asincrónico (winsock) en lugar de ipworks. Pero en IPWorks, no sé cómo resolverlo. –

+0

@MSK Shutdown no tiene nada que ver con mi respuesta. La situación sigue siendo la misma Cierre el socket. – EJP

Cuestiones relacionadas