Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 21.05.2016
Сообщений: 9
1

Разделение потока на порции данных

08.08.2017, 20:46. Показов 1239. Ответов 1

Author24 — интернет-сервис помощи студентам
Все то, что функция send()посылает на хост, может разделиться на несколько отдельных порций данных, на прочтение каждой из которых нужен отдельный вызов recv(). Т.е. если я делаю так:
C++
1
send("GET file.txt");
,то сообщение может разделиться на отдельные части, например:
C++
1
"GE", "T fi", "le.txt"
,причем для прочтения каждой части нужен отдельный вызов recv().
С этим можно бороться, предварительно посылая пару байтов, в которых записан размер передаваемого сообщения. Тогда его можно будет легко прочитать по кусочкам в цикле.
НО: если принимаемое сообщение дробится, значит ли это, что при выполнении
C++
1
send("GET file.txt");
протокол решит выполнить
C++
1
send("GET fi");
,отбросив остальную часть для дальнейшей передачи? Иначе говоря, обязательна ли проверка числа отправленных байтов на передающем хосте и циклический вызов send() для полной отправки сообщения? Или все же можно обойтись всего одним вызовом send() и несколькими вызовами recv()?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2017, 20:46
Ответы с готовыми решениями:

Перенести все порции данных из Excel в Word-таблицу
Здравствуйте. Есть столбец A в Excel. В нём порции данных по 4 строки. Данные формируются...

Разделение TCP потока на отдельные пакеты
получаю данные так: Socket lsSock; byte data = new byte; lsSock.Recieve(data); данные - это...

Написать программу, которая выполняет в цикле взвод 10-ти порций данных, заготовленных в массиве buf (размер каждой порции – 15 байт).
Написать программу, которая выполняет в цикле взвод 10-ти порций данных, заготовленных в массиве...

Разделение данных между пользователями БД. Назначение нормы обработки данных в день
Добрый день уважаемые форумчане! Столкнулась с острой необходимость реализовать следующее: ...

1
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
09.08.2017, 20:00 2
Цитата Сообщение от tracer_8086 Посмотреть сообщение
НО: если принимаемое сообщение дробится, значит ли это, что при выполнении
C++
1
send("GET file.txt");
протокол решит выполнить
C++
1
send("GET fi");
,отбросив остальную часть для дальнейшей передачи?
Нет, вызов send() при невозможности целиком передать указанное количество байтов вернет ошибку (-1)
0
09.08.2017, 20:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2017, 20:00
Помогаю со студенческими работами здесь

Разделение данных
Давненько не сидел за Access, сейчас решил к нему вернуться. Создаю БД на Access 2007, и сейчас...

Разделение данных
Добрый день! В БД есть поле Номер в него из Экселя экспортированы данные вида "111111 от...

V-USB 3 порции по 16 бит
Собственно такой вопрос. Как мне изменить настройки чтобы отправлять на комп 3 посылки по 16 бит...

Open/Save Dialog. Сериализация данных. Запись/чтение данных объектов в/из потока.
Описана файловая переменная FileOfFilms: file of TFilmArr и переменная, содержащая имя файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru