Кто нибудь помнит какой размер буфера приема данных для стандартных сокетов? крутится в голове цифра 2048, но я не уверен...
Может вы хотели узнать это чило : #define MAX_PACKET 65535 sendto за 1 раз может послать буфер размером в ту константу. То есть я думаю это и есть ответ на твой вопрос.
по моему размер буфера выставляется в реестре виндовс, у меня стоит 8 кб... максимальный размер кадра езернет 1,5 кб... а когда мы учили сети, то нам говорили что за раз send посылает не более 500-600 байт...
Ну это за раз отсылка ... а он имел ввиду (если читать что он написал) размер буфера. Вообще для TCP размер буфера это размер окна. Размер UDP буфера по умолчанию равен около 9 кб для отправки и 40 кб для приема. Но все зависит от реализации сокетов. В одной книге (Стивенс) еще написано , что размеры буфера TCP должны быть как минимум втрое меньше максимального размера сегмента для соединения. В ней кстати довольно подробно описана эта тема.
Да, извиняюсь за то что кратко и не понятно спросил... Протокол TCP, я считываю recv`ом по 2048 байт Код (Text): BUFF_SIZE equ 2048 invoke recv,hSock,addr buffer,BUFF_SIZE,0 для лучшей производительности меняю параметры сокета с помощью setsockopt (SO_RCVBUF), ставлю BUFF_SIZE так вот и хочу узнать какой размер буффера на приеме сокета стоит по умолчанию... если BUFF_SIZE, то не смысла менять параметры сокета...
Ну вот я и говорю .. зависит от реализации (читай предыдущий пост) это помоему параметры BSD реализации. Я бы просто не юзал setsockopt для установки буфера приема. Система выберет по умолчанию сама. И это будет самое оптимальное решение.
Можно запросить у самой винды: getsockopt,hSock,SOL_SOCKET,SO_RCVBUF,lpbuffout,lpszbuff ИЗ MSDN: int getsockopt( SOCKET s, int level, int optname, char* optval, int* optlen ); If no error occurs, getsockopt returns zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.