最近在使用c++ socket,在绑定地址端口bind()时一直出错,后来发现是重复绑定相同的地址和端口的原因。
所以在操作时设置标志位,绑定一次就不再绑定,或者先解除绑定再绑定。
但是再解除绑定时,会经历一个TIME_WAIT的过程,如果想强制关闭,则需要配置。
//如果要已经处于连接状态的socket在调用closesocket后强制关闭,经历TIME_WAIT的过程:
BOOL bDontLinger = TURE;
setsockopt(echo_socket_WIN,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL));
));
//如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:
BOOL bDontLinger = FALSE;
setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL));
1406

被折叠的 条评论
为什么被折叠?



