c ++ winsock2, как узнать, когда соединение закрывается - PullRequest
2 голосов
/ 06 октября 2009

У меня есть программа на С ++, использующая winsock2. Я хотел бы знать, как определить, когда чья-то связь с моей программой закрывается.

Ответы [ 2 ]

5 голосов
/ 06 октября 2009

Используйте select для ожидания чтения в сокете; когда сокет закрыт, winsock должен сообщить о нем как о читаемом. При получении из сокета вы получите 0 байтов, сообщающих, что сокет был закрыт.

0 голосов
/ 21 марта 2013
int received_bytes = recv(_socket, buffer, sizeof(buffer)-1,0);
if(received_bytes > 0)
{
   //data received
}
else if (received_bytes == 0)
{
  //connection closed
}

else
{
  //wait for more data
}
...