![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
fsMark |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 23.4.2008 Из: г. Киров Пользователь №: 155 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Получаю данные QTcpServer`ом от удаленного telnet клиента, признак конца команды (насколько я понял из немногочисленной документатции) есть ничто иное как признак конца строки и перевод каретки (т.е. "\n\r").
Использую следующий код для получения команды целиком (она записывается в буфер)
Такой код ничего хорошего не дает ((, возникает вопрос правильно ли я ищу признак конца строки и перевод каретки.. или может я неправ насчет того что передает telnet при нажатии enter`а? Кто сталкивался подскажите пожалуйста. |
|
|
![]() |
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Думаю стоит поработать над вариантом, что будет, если тебе прийдет пакет 1024 байт? Или 2048, или n байт?
Другими словами cчитывать то количество байт, которое пришло, а не то, под которое ты выделил память. Читай до тех пор, пока функция read не вернет 0 байт, так как: Цитата 0 is returned when no more data is available for reading. Используй функцию read ( char * data, qint64 maxSize ). ![]() Сообщение отредактировал ViGOur - 3.5.2008, 22:05 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 9:34 |