1、socket選項通常:服務端應在listen 前設置,accpet返回的socket繼承自監聽套接字。
客戶端應在connect之前設置
2、socket 如果有大量短連接應設置SO_LINGER選項 代碼如下。
注意:服務端和客戶端都要設置,這樣調用close時會直接關閉socket,避免大量TIME_OUT狀態的socket出現
struct linger so_linger;
so_linger.l_onoff = TRUE;
so_linger.l_linger = 0;
setsockopt(m_skServer, SOL_SOCKET, SO_LINGER, (const char*)&so_linger, sizeof(so_linger));
不能使用shutdow函數,使用shutdown還是會出現time_wait狀態
3、select 函數返回的條件:
可讀:接收緩沖區中的數據值大約等于SO_RCVLOWAT的值一般默認為1
可寫:發送緩沖區的可用空間大約等于SO_SNDLOWAT的值(2048)
浙公網安備 33010602011771號