setsockopt,用于在bind之前给linux_fd设置为端口复用特性。
典型的应用场合为:tcp连接后,服务端异常崩溃断开,此时将导致服务端的linux_fd进入“TIME_WAIT”状态,需要等待2分钟,才能再次绑定。此时就需要在bind前设置linux_fd端口复用。
int ret;
int on=1;
ret = setsockopt(linux_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof(on));
if(0 != ret )
{
printf("reuse error\r\n");
while(1);
}
bind................
但其实端口复用时有弊端,可能在服务端重启后收到来自原客户端的乱码数据,这个严谨的程序需要注意。
(感兴趣可以再看看SO_REUSEADDR和SO_REUSEPORT的详细介绍)