網(wǎng)絡(luò)編程 心得2
如果客戶端必須使用綁定端口,那么在關(guān)閉的時候,會經(jīng)歷TIME_WAIT的過程,一般windows下是2分鐘,這段時間,客戶端connect的時候,會出錯(WSAEADDRINUSE:10048),
怎么不經(jīng)歷這個狀態(tài)呢?
使用下面代碼:
// 如果要已經(jīng)處于連接狀態(tài)的soket在調(diào)用closesocket后強制關(guān)閉,不經(jīng)歷TIME_WAIT的過程:
BOOL bDontLinger = FALSE;
if (setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL))< 0) {
wsaperror("setsockopt");
break;
}