У меня проблема, когда иногда при отправке данных через сокеты TCP / IP они не читаются должным образом.У меня есть три клиента, отправляющие данные на сервер (все на одном порту).Сервер прослушивает что-либо на этом порту.Время от времени только 2/3 данных клиентов успешно считываются.В других случаях все работает нормально.
Настройка заключается в том, что клиенты сначала подключаются и постоянно пытаются подключиться, вызывая новый Socket (), и, как только они это делают, они сразу отправляют сообщение.
Глядя на tcpdump, я вижу, что данные передаются правильно.Проанализировал пакеты с помощью wireshark, и они выглядят правильно.
При вызове netstat становится ясно, что пакеты принимаются.Они застряли в буфере recv-q.Кажется, что приложение читает другие сообщения, которые оно получает в тот момент (через тот же порт), но не от клиента в этом странном состоянии.
У меня вопрос, если это проблема конфигурации сети?И есть ли другой способ отладки этой проблемы?Не уверены, почему сервер читает сообщения от определенных клиентов, а не от других.Код сокета, вероятно, не является причиной проблемы, так как этот код существует уже долгое время и проверяется тысячи часов.