|
![]() |
Пред. тема | След. тема | ||
Форумы
![]() | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"read склеивает сообщения которые читаются с сокета." | |
Сообщение от green ![]() | |
Есть серверное приложение и клиентские приложения. Если на клиентском приложении подряд отправить несколько сообщений (send) 50 байт. То на сервере при получении сообщения (read) читается сразу все 100 байт. Как сделать так чтобы read читал каждый раз только столько байт сколько в однома сообщении? | |
Высказать мнение | Ответить | Правка | Cообщить модератору |
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. "read склеивает сообщения которые читаются с сокета." | |
Сообщение от anonymous ![]() | |
TCP -- потоково-ориентированный протокол. Если хотите в потоке передавать дискретные "сообщения" -- делайте свою обвязку, например отправляйте сначала количество отправлямых байт, а потом само сообщение. На клиенте читаете размер, потом нужное число байт. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
2. "read склеивает сообщения которые читаются с сокета." | |
Сообщение от DeadMustdie ![]() ![]() | |
Вообще для обмена сообщениями поверх TCP всегда можно организовать прикладной протокол-обвертку. Например, перед каждым сообщением отправлять его длину, а при приеме сперва эту длину читать первым recv(), и затем принимать ровно столько октетов, сколько отправила другая сторона. | |
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору |
Архив | Удалить |
Индекс форумов | Темы | Пред. тема | След. тема |
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ] |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |