DPL 0 2 мая, 2016 Опубликовано 2 мая, 2016 · Жалоба Здравствуйте! В соответствии с "MODBUS Messaging on TCP/IP Implementation Guide V1.0b" пытаюсь реализовать сервер (как там рекомендуют- с помощью BSD Sockets). Не совсем понимаю, как сервер должен выделять отдельные запросы из потока входных данных? Предположим, клиент отправил подряд три запроса (три вызова send()). Сервер одним вызовом recv() считал всё в буфер. Как выделять отдельные запросы? Ориентироваться только на поле Length в MBAP? Но как поступить, если клиент прислал запрос несоответствующей длины (допустим, первый из трёх)? Тогда на начало следующего (второго) запроса мы уже не попадём и вместо его MBAP прочитаем ерунду. В упомянутом выше документе сказано, что если MBAP некорректный, то принятые данные следует игнорировать. Получится, что два оставшихся запроса будут проигнорированы сервером. Что-то мне кажется, что так быть не должно. Хотелось бы узнать, решал ли кто-то подобную задачу и каким способом? Заранее благодарю за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться