Can Socket. Receive () возвращает 0, если соединение все еще открыто?

Я пишу на C #. NET-серверное приложение, которое отправляет и получает данные через сокеты, и у меня возникают некоторые проблемы, если клиентское приложение выходит из строя без правильного закрытия сокета.

Я установил для «тайм-аут приема» заданное значение и ожидал, что Socket.Receive (), чтобы создать исключение по прошествии этого времени. Но вместо этого метод просто возвращает 0.

Итак, мой вопрос: возможно ли, что сокет все еще открыт, если Socket.Receive () возвращает 0? Или я могу с уверенностью предположить, что он не работает?

(Может быть, немного сложно понять. Если да, сообщите мне об этом в комментариях)

5
задан Cody Gray 16 April 2011 в 12:53
поделиться