Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > теория сокетов


Автор: zss 2.5.2006, 19:06
1. на сколько я понимаю если в момент запроса у сокета данных на чтение
может произойти ситуация, когда до сокета не дошел весь объем данных
и он вернет столько, сколько у него есть на данный момент.

Можно ли заставить его отдать данные, когда они прийдут целиком ? (как в pipe)
Или нужно делать надстройку над TCP

2. У pipe есть возможность определить размер трубы и соответственно
выделить максимальный размер буфера. У сокета нет такой возможности.

Как правильно сделать
- запросить сначала сколько данных будет переданно
- или читать последовательно (если первые байтики определяют размер того что пойдет дальше)

3. Можно ли заставить WSAAccept работать асинхронно ?
 

Автор: Romikgy 2.5.2006, 23:37
Цитата(zss @  2.5.2006,  18:06 Найти цитируемый пост)
Можно ли заставить его отдать данные, когда они прийдут целиком ? (как в pipe)
Или нужно делать надстройку над TCP

Имхо в тсп нет возможности определения размера данных, приходится самому передавать, кол-во даных на передачу
Цитата(zss @  2.5.2006,  18:06 Найти цитируемый пост)
2. У pipe есть возможность определить размер трубы и соответственно
выделить максимальный размер буфера. У сокета нет такой возможности.

Имхо где то есть указания настройки буфера
Цитата(zss @  2.5.2006,  18:06 Найти цитируемый пост)
3. Можно ли заставить WSAAccept работать асинхронно ?

И снова имхо это и есть асинхроный, почитай хелп по этой ф-ции и + WSAAsyncSelect ,  WSAEventSelect 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)