Какое максимальное количество байт может принять recv
От: nokal  
Дата: 06.08.08 21:01
Оценка:
Так вот...у меня проблема, когда задаю функции recv число 3000 в поле размер принимаемых данных то все норм, но когда больше то процес вобще подвисает, ждет ждет и ждет( я не понимаю, может есть ограничение на объем этих данных?
Re: Какое максимальное количество байт может принять recv
От: c-smile Канада http://terrainformatica.com
Дата: 07.08.08 02:30
Оценка: 1 (1)
Здравствуйте, nokal, Вы писали:

N>Так вот...у меня проблема, когда задаю функции recv число 3000 в поле размер принимаемых данных то все норм, но когда больше то процес вобще подвисает, ждет ждет и ждет( я не понимаю, может есть ограничение на объем этих данных?


Матчасть:

If no incoming data is available at the socket, the recv call blocks and waits for data to arrive according to the blocking rules defined for WSARecv with the MSG_PARTIAL flag not set unless the socket is nonblocking. In this case, a value of SOCKET_ERROR is returned with the error code set to WSAEWOULDBLOCK. The select, WSAAsyncSelect, or WSAEventSelect functions can be used to determine when more data arrives.

Re: Какое максимальное количество байт может принять recv
От: EyeOfHell  
Дата: 08.08.08 07:52
Оценка:

Так вот...у меня проблема, когда задаю функции recv число 3000 в поле размер принимаемых данных то все норм, но когда больше то процес вобще подвисает, ждет ждет и ждет( я не понимаю, может есть ограничение на объем этих данных?


Если настройки сокетов не менялись ( блокирующие, синхронные ) то recv будет ждать, пока не придут данные по сети (для TCP, с UDP немного подругому). Как только данные пришли, recv начнет их извлекать и складывать в переданный ей буфер. Как кончатся данные или буфер — вернет управление.

Соответственно, если recv не возвращает управление — данных нету. Ищи почему они не передались .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.