Вы должны закрыть TCP-соединение с любой стороны. Соединение на другой стороне будет закрыто автоматически.
Если вы хотите узнать, как реализовать автоматическое закрытие:
Когда другая сторона хочет закрыть соединение, она отправляет FIN на tcp
заголовках. На стороне программы ваш сокет будет активирован функцией select
, а функция recv
вернет значение 0. Таким образом:
if (recv(socket, ...) == 0)
closesocket(socket);