Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Winsock [D5, D6, D7, Win2k, WinXP]


xoms ©   (2004-09-24 05:21:00) 

Я хочу отправить в сеть ну например 5000 байт, вызываю WSASend и на приёмной стороне получаю море мелких пакетов. WSARecv вызывается многократно.

Вопрос, что надо сделать при создании, посылке, получении или ещё где, чтобы WSARecv вызвался только 1 раз и все 5000 байт мне вернул.


Verg   (2004-09-25 23:16:00) [1]


> Вопрос, что надо сделать при создании, посылке, получении
> или ещё где, чтобы WSARecv вызвался только 1 раз и все 5000
> байт мне вернул.


Нет.
Придется все-таки "комбайны под землю делать",
никак не наоборот :).


Digitman   (2004-09-24 08:42:00) [2]


> что надо сделать при создании, посылке, получении или ещё
> где, чтобы WSARecv вызвался только 1 раз и все 5000 байт
> мне вернул.


что ж страшного в том, что recv-ф-цию приходится вызывать многократно ?

это абсолютно нормальное явление, потому что TCP-протокол поточноориентированный (stream oriented)

хочешь получать сообщения целиком ? используй UDP-протокол (message oriented), но при этом забудь о гарантии доставки сообщений, которую дает TCP-протокол


Defunct   (2004-09-24 06:01:00) [3]

переставить иконки на рабочем столе

> море мелких пакетов
море = 3?


Наверх

Титульная страница Поиск, карта сайта Написать письмо