Получение и обработка пакетов TCP/IP |
Здравствуйте, гость ( Вход | Регистрация )
Получение и обработка пакетов TCP/IP |
RazrFalcon |
11.1.2011, 15:30
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В этом я полный профан.
Вопрос вот в чем: есть устройство (на микроконтроллере), которое посылает пакеты (как то) по, грубо говоря, сетевому кабелю на комп, и на компе уже программа должна получать эти пакеты и выдирать из них данные, а потом, к примеру, рисовать график. Если говорю ну очень глупые вещи, ткните носом что нужно сначала прочесть, что бы хотя бы логику работы понять. Спасибо. |
|
|
Алексей1153 |
14.1.2011, 21:22
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
silver47 |
16.1.2002, 23:58
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Как Этого избежать? 1) ставить в данных метки (способов много, зависит от задачи) 2) использовать UDP ( тут система выдаёт при чтении ровно один пакет - хотя, могу ошибаться, но вроде так получалось. Если что, меня сейчас поправят ) Вот чего прочитал: Передавать данные можно либо в виде текста, либо в виде блоков с данными (QTextStream и QDataStream). Для того чтобы определить можно ли читать данные из текстового потока, нужно вызвать QTcpSocket::canReadLine() а читать QTcpSocket::readLine(); Для блочных данных в начале передается размер блока, затем уже сам блок, и читаем только тогда, когда QTcpSocket::bytesAvailable() больше этого блока. Вроде как-то так. |
|
|
Текстовая версия | Сейчас: 28.1.2025, 23:53 |