Tengo un servidor que recibe solicitudes de conexión de los clientes. Este servidor hace uso del método asincrónico Socket.BeginReceive
y Socket.EndReceive
. El código es bastante similar al código encontrado here.C#: ¿Cómo finalizo un socket antes de que Socket.BeginReceive vuelva a llamar?
En mi caso, después de llamar al Socket.BeginReceive
necesito un tiempo de espera tal que si el cliente se cuelga de la conexión pero no transmite ningún dato durante un período fijo de tiempo, debo terminar la conexión.
- ¿Cómo hago para terminar la conexión en este escenario?
- ¿Cuál es la mejor manera de codificar un temporizador ?
¿Quiere decir que el método de devolución de llamada seguirá ejecutándose después de llamar al método de cierre del socket? – Lopper
Si un BeginReceive() está pendiente: sí. * Siempre * tiene que estar emparejado con una llamada EndReceive(). No puede evitar la devolución de llamada. –
Gracias nobugz :) – Lopper