您的位置:首页 > 运维架构

好记性不如烂笔头之1(setsockopt)

2016-08-05 09:13 246 查看
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的详细介绍)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: