正常情况下:TCP断开连接的4次挥手中处于TIME——WAIT方 需要等待一段时间,防止最后的ACK分解丢失,这样导致服务器端的端口也仍然处于使用中。
解决方法:设置 setsockopt的 SO——REUSEADDR选项,就可以避开了这个限制,使得端口关闭后,服务器程序能立即重启。
for example:
int option = 1;
m_Socketfd= socket(AF_INET,SOCK_STREAM,0);
if(m_Socketfd<0)
printf("create socket error: %s(errno: %d)\n",strerror(errno),errno);
setsockopt ( m_Socketfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof( option ) );
关于setsockopt()函数 参数详解可以百度。