Задача интегрироваться в систему где для связи между устройствами используется протокол tcp. Нужно разработать сервер, для другой логики работы с клиентами. Подключение является постоянным.
При открытии сокета клиент отправляет пустое сообщение - оно успешно открывает соединение. Сервер может как отправить свою команду клиенту, так и ожидать сообщение от него. Общение между клиентом и сервером завершается отправкой сообщения с пустым содержимым клиентом или сервером. После завершения общения сервер посылает команду, или ждёт сообщения от клиента.
Что-бы отправить новую команду сервером, нужно завершить предыдущее общение. Но пустое сообщение от клиента, сервер игнорирует.
Я использовал Асинхронное подключение с официального сайта. При получении пустого сообщения сокет не заходит в ReadCallback
. Я тестировал на синхронном сокете, там Receive
так-же не слушает пустые сообщения. Wireshark
эти запросы прекрасно видит
Может кто-нибудь подсказать как можно решить эту проблему? Возможно использовать другие средства?
TCP сокеты не работают в терминах сообщений, по крайней мене не с точки зрения WinAPI и .NET. Сокет - это труба, в который вы пишете байты, которые читаются с другой стороны. Отправленное двумя "сообщениями" может дойти в виде одного вызова callback. И наоборот, отправленное одним сообщением может дойти на другую сторону двумя отдельными вызовами callback.
Пустое "сообщение", соответственно, не доходит никак - пока нет вычитываемых байт - callback не вызывается. 0 байт вычитается только в случае, если друга сторона закроет соединение.
For byte streams, zero bytes having been read indicates graceful closure and that no more bytes will ever be read.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Создавая программу, мне понадобилось создать picture Box, который для моего дизайна должен быть круглымПомогите понять, как это сделать
Помогите реализовать такую идею: Ввожу в textbox1 определенный код и при нажатии на кнопку он выполняетсяИдеи с if(
Как защитить такой insert запрос от sql инъекций ? Я использую python 37 и БД mysql 5