博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Address already in use的解决方法
阅读量:6945 次
发布时间:2019-06-27

本文共 384 字,大约阅读时间需要 1 分钟。

当客户端保持着与服务器端的连接,这时服务器端断开,再开启服务器时会出现: Address already in usr

 

可以用netstat -anp | more 可以看到客户端还保持着与服务器的连接(还在使用服务器bind的端口)。这是由于client没有执行close,连接还会等待client的FIN包一段时间。

 

解决方法是使用setsockopt,使得socket可以被重用,是最常用的服务器编程要点。

 

具体的做法为是,在socket调用和bind 调用之间加上一段对socket的设置:

int opt = 1;setsockopt(socket_fd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));

 

  

转载于:https://www.cnblogs.com/zl-graduate/p/5753334.html

你可能感兴趣的文章
db file scattered read等待事件
查看>>
linux下c的网络编程---转载
查看>>
filter中的DelegatingFilterProxy使用事例
查看>>
flashcache的实现与分析
查看>>
[UML]UML系列——状态机图statechart diagram
查看>>
微信公众平台开发(74) 用户分组管理
查看>>
二、jdk命令之javah命令(C Header and Stub File Generator)
查看>>
ios模拟器未能安装此应用程序
查看>>
站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合
查看>>
HBase eclipse开发环境搭建
查看>>
SQL Server - 把星期一(周一)当作每个星期的开始在一年中求取周数
查看>>
jquery-alert对话框
查看>>
WIN8系统安装软件时提示"扩展属性不一致"的解决方法
查看>>
sqlite3.exe 使用
查看>>
CAD中批量打印
查看>>
蛋疼的Apple IOS Push通知协议
查看>>
MyEclipse10.0 安装 jbpm4.4
查看>>
批处理复制文件(文件夹)排除某目录,某些类型(草稿)
查看>>
【转】shell 编程:冒号 后面跟 等号,加号,减号,问号的意义
查看>>
C#编写COM组件
查看>>