У меня есть программа на С ++, использующая winsock2. Я хотел бы знать, как определить, когда чья-то связь с моей программой закрывается.
Используйте select для ожидания чтения в сокете; когда сокет закрыт, winsock должен сообщить о нем как о читаемом. При получении из сокета вы получите 0 байтов, сообщающих, что сокет был закрыт.
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 }