socket instalar example code c++ windows sockets winsock

c++ - instalar - Winsock recv no funciona después del cierre



winsock example (2)

Intento que funcione un programa winsock simple, así que creo mi socket y envío mis datos sin problemas. Luego uso shutdown(ConnectSocket, SD_SEND) que de acuerdo con msdn, desactiva el envío de datos, pero no recibe? El ejemplo en msdn también lo hace.

Pero después de llamar a shutdown mi función recv devuelve 0 sin recibir ningún dato.
Si comento el código de apagado, todo funciona como debería.

¿Me estoy perdiendo de algo?


No, eso es normal. El otro lado respondió a tu parada cerrando. Un retorno cero de recv indica un apagado de conexión normal. Si no quieres que el otro lado cierre su mitad de la conexión, no apagues la tuya.

(¿Qué esperabas que hiciera la otra parte cuando su llamada a recv devolvió cero?)


Si se trata de un protocolo HTTP, use el encabezado de conexión para cerrar la conexión o mantener abierto:

Conexión: Cerrar

en este caso, no necesita cerrar el envío

o

Conexión: keep-alive

la recepción se repetirá sin cerrar la parte de envío de la conexión