Se ha detenido la aplicación

Iniciado por Jeezy, 31 Agosto 2018, 18:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Jeezy

Hola, tengo un problema en mi cliente servidor funciona por sockets y cuando se cierra el servidor se cierra el socket del cliente utilizando el siguiente código

client.Close();
client.Shutdown(shutdown.Both);


Y cuando se cierra se detiene la aplicación , alguien me podría explicar por que al cerrar la conexion se detiene gracias.

Eleкtro

La llamada al método Socket.Shutdown debes efectuarla antes de cerrar el socket...


CitarThe Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. Upon closing, the Connected property is set to false.

For connection-oriented protocols, it is recommended that you call Shutdown before calling the Close method. This ensures that all data is sent and received on the connected socket before it is closed.

CitarIf you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLingerSocket option to false and specifying a non-zero time-out interval. Close will then block until this data is sent or until the specified time-out expires. If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

Saludos.








Jeezy

Ya hice lo que me dijiste pero me salta excepcion en el client.shutdown

Cannot access a disposed object.

o nose si estoy en lo correcto que cuando se cierre un cliente tambien tengo que cerrar la conexion desde el servidor o solo desde el cliente