#.net #sockets
#.net #сокеты
Вопрос:
У меня есть встроенное устройство, с которым я играю; Отправка некоторых данных с ПК. В случае со встроенным устройством я говорю не о WindowsCE / Linux, а о микроконтроллере с дрянным стеком TCP-IP и несколькими КБ оперативной памяти.
Проблема возникает, когда я пытаюсь отправить несколько пакетов и в конечном итоге заливаю драйвер устройства.
В чем проблема?
BeginSend и EndSend на ПК работают без ошибок, и общая длина данных, отправленных в BeginSend, совпадает с длиной возвращаемой конечной отправки. Но проверка количества данных [байт?] отправка с помощью Wireshark показывает, что пакетов не так много, как должно быть, и эта разница составляет несколько КБ. Итак, BeginSend и EndSend работают так, как если бы они завершились, но на самом деле это не так.
Я попытался переключить сокет.NoDelay но, похоже, это не работает. Даже если я установил сокет.NoDelay = true, отправляются пакеты большего размера, поэтому похоже, что это не имеет никакого эффекта.
Я, конечно, использую TCP-сокеты.
Отправка такого количества данных с веб-сервера (IIS) работает нормально.
Есть ли какие-либо проблемы, о которых я должен знать?
Комментарии:
1. Почему вы говорите об ожидаемом количестве пакетов? Количество используемых пакетов может варьироваться при использовании TCP.
Ответ №1:
У меня встроенное устройство, и я играю, отправляя некоторые данные с ПК. Со встроенным устройством я говорю не о WindowsCE / Linux, а о микроконтроллере с дрянным стеком TCP-IP и несколькими КБ оперативной памяти.
Отправляете ли вы из.Сетевое приложение для этого устройства?
BeginSend и EndSend на ПК работают без ошибок, и общая длина данных, отправленных в BeginSend, совпадает с общей длиной возвращаемой конечной отправки. Но проверка количества отправленных данных с помощью Wireshark показывает, что пакетов не так много, как должно быть, и эта разница составляет несколько КБ.
Как вы пришли к такому выводу?
Отправка такого количества данных с веб-сервера (IIS) работает нормально.
Пожалуйста, уточните, что вы имеете в виду? Отправляете ли вы через HTTP на встроенное устройство, и это работает?
Есть ли какая-либо проблема, о которой я должен знать?
В чем проблема? Встроенное устройство не получает все? Если да, то как вы пришли к такому выводу?