socket傳送資料時候先把資料傳送到socket緩衝區中,之後接受函式再從緩衝區中取資料,如果傳送端特別快的時候,緩衝區很快就被填滿(socket預設的是1024×8=8192位元組),這時候我們應該根據情況設定緩衝區的大小,可以通過setsockopt函式實現
intsetsockopt(
sockets
,
intlevel
,
intoptname
,
const char*optval
,
intoptlen
);
eg:int optval = 1024*1024 ;
int optlen = sizeof(int);
setsockopt(socket, sol_socket,so_rcvbuf,(char*)&optval,optlen );
socket:傳輸資料的socket
sol_socket:基本套介面
so_rcvbuf:接受資料的緩衝區
optval: 緩衝區大小
optlen :指向緩衝區大小變數的長度
網上還有很多關於這個函式的詳細說明。暫時沒有用到。以後再新增!
設定socket緩衝區大小
分類 天上的星 亮晶晶 2008 11 18 16 50 2973人閱讀收藏 舉報socket傳送資料時候先把資料傳送到socket緩衝區中,之後接受函式再從緩衝區中取資料,如果傳送端特別快的時候,緩衝區很快就被填滿 socket預設的是1024 8 8192位元組 這時候我們應該根據情況設定緩衝區...
socket緩衝區大小
socket緩衝區大小預設為64 k 理論上最優大小為 頻寬乘以往返時間 rtt通過ping ip位址的最後一行得到,如下圖所示 一般把緩衝區大小的最優化設定需要參照頻寬與往返時間rtt得到的頻寬延遲bdp。假設應用程式是通過乙個 100mbps 的區域網進行通訊,其 rtt 為 10 ms,那麼 ...
緩衝區設定 套接字緩衝區大小及限制
pv4資料報的最大值是65535位元組,包括ipv4首部。ipv6資料報的最大值是65575位元組,包括40位元組的首部。mtu ip資料報的最大傳輸單元,乙太網的mtu是1500位元組。ipv4要求的最小鏈路mtu是68位元組。ipv6要求的最小鏈路mtu是1280位元組。如果乙個ipv6的資料報...