Вход на сайт
Socket: Как удостовериться что связь в норме?
479 просмотров
Перейти к просмотру всей ветки
moose свой человек
в ответ anly 16.03.17 20:47
запускает Listen, а потом периодически Accept, пока не поймает сокeта-клиента, который вызвал Connect.
Что значит "периодически"? Пока кто-нибудь не соединится, трэд висит на этом Accept().
Итак связь установилась. Причем сервер работает только с одним клиентом, других (после того как первого акцептировал), игнорирует.Теперь сервер и клиент могут посылать друг другу сообщения , и принимать друг от друга. И вот например клиент отрубился (было вызвано Close), а потом опять хочет подконнектиться, но сервер его отбрасывает, пребывая в заблуждении что все еще на связи. Сервер просто периодически вызывает Receive, но понятно что данные не идут, а это нормально - клиент не шлёт, видимо потому что не надо.
А клиент действительно только один, или их сотня, но мы будем соединяться только с первым попавшимся, остальные пускай ждут? Или что там происходит реально? Сервер как-то различает клиентов, они как-то регистрируются, или любой кто захотел соединиться, принимается?
Что делает тот трэд, который выдал Listen(), после того, как сработал Accept()?
Что предусмотрено нормальным сценарием на случай, если клиент закрыл соединение, и сервер об этом уведомлен?