русский
Germany.ruForen → Архив Досок→ Programmierung

Socket: Как удостовериться что связь в норме?

17.03.17 19:27
Re: Socket: Как удостовериться что связь в норме?
 
  moose свой человек
in Antwort anly 16.03.17 20:47
запускает Listen, а потом периодически Accept, пока не поймает сокeта-клиента, который вызвал Connect.


Что значит "периодически"? Пока кто-нибудь не соединится, трэд висит на этом Accept().


Итак связь установилась. Причем сервер работает только с одним клиентом, других (после того как первого акцептировал), игнорирует.Теперь сервер и клиент могут посылать друг другу сообщения , и принимать друг от друга. И вот например клиент отрубился (было вызвано Close), а потом опять хочет подконнектиться, но сервер его отбрасывает, пребывая в заблуждении что все еще на связи. Сервер просто периодически вызывает Receive, но понятно что данные не идут, а это нормально - клиент не шлёт, видимо потому что не надо.

А клиент действительно только один, или их сотня, но мы будем соединяться только с первым попавшимся, остальные пускай ждут? Или что там происходит реально? Сервер как-то различает клиентов, они как-то регистрируются, или любой кто захотел соединиться, принимается?

Что делает тот трэд, который выдал Listen(), после того, как сработал Accept()?

Что предусмотрено нормальным сценарием на случай, если клиент закрыл соединение, и сервер об этом уведомлен?

 

Sprung zu