Я работаю над клиент-серверной программой, использующей сокеты в Windows и MAC, и в настоящее время сталкиваюсь с проблемой, когда клиентский вызов recv блокируется навсегда, когда серверная программа выходит из строя / завершается с помощью диспетчера задач. Я отправляю данные на сервер и асинхронно жду ответа, используя recv. Этот ответ придет с сервера через некоторое время, которое не может быть определено. Я ожидал ошибки от recv, когда умирают другие концы сокета. Не знаю, как справиться с этой ситуацией.
Предложения ?
Спасибо,
recv()
только в том случае, если что-то действительно ожидает чтения (что включает в себя плавное закрытие в конце потока одноранговым узлом). 11.12.2014