Получение текста через TCP сокет, Нахождение символа конца строкит () |
Здравствуйте, гость ( Вход | Регистрация )
Получение текста через TCP сокет, Нахождение символа конца строкит () |
fsMark |
2.5.2008, 23:42
Сообщение
#1
|
Студент Группа: Участник Сообщений: 97 Регистрация: 23.4.2008 Из: г. Киров Пользователь №: 155 Спасибо сказали: 10 раз(а) Репутация: 1 |
Получаю данные QTcpServer`ом от удаленного telnet клиента, признак конца команды (насколько я понял из немногочисленной документатции) есть ничто иное как признак конца строки и перевод каретки (т.е. "\n\r").
Использую следующий код для получения команды целиком (она записывается в буфер)
Такой код ничего хорошего не дает ((, возникает вопрос правильно ли я ищу признак конца строки и перевод каретки.. или может я неправ насчет того что передает telnet при нажатии enter`а? Кто сталкивался подскажите пожалуйста. |
|
|
ViGOur |
3.5.2008, 22:03
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Думаю стоит поработать над вариантом, что будет, если тебе прийдет пакет 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 |
|
|
Текстовая версия | Сейчас: 26.11.2024, 20:46 |