网络编程--Address already in use 问题
来源:互联网 发布:桌面 滚动屏软件 编辑:程序博客网 时间:2024/04/28 05:21
初学socket编程,好容易调好一个双向tcp的简单通信,一直有些不舒服的是,当程序结束后,再次运行时
总会perror抛出Address already in use的问题
网上找了找资料,
bind 普遍遭遇的问题是试图绑定一个已经在使用的端口。该陷阱是也许没有活动的套接字存在,但仍然禁止绑定端口(bind 返回 EADDRINUSE),它由 TCP 套接字状态 TIME_WAIT 引起。该状态在套接字关闭后约保留 2 到 4 分钟。在 TIME_WAIT 状态退出之后,套接字被删除,该地址才能被重新绑定而不出问题。
等待 TIME_WAIT 结束可能是令人恼火的一件事,特别是如果您正在开发一个套接字服务器,就需要停止服务器来做一些改动,然后重启。幸运的是,有方法可以避开 TIME_WAIT 状态。可以给套接字应用 SO_REUSEADDR 套接字选项,以便端口可以马上重用。
int on=1;if((setsockopt(fd_sock,SOL_SOCKET, SO_REUSEADDR,&on,sizeof(on)))<0){ perror("setsockopt"); return(-1);}
于是结合man手册,通过以上函数,使得端口可以立即重用
0 0
- 网络编程--Address already in use 问题
- JMeter测试问题:address already in use
- Jenkins 安装Address already in use问题
- Address already in use: JVM_Bind 问题
- Address already in use: JVM_Bind问题
- Address already in use
- Address already in use
- Address already in use
- address already in use
- address already in use
- address already in use
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- socket编程小问题:地址已经被使用——Address already in use
- Linux下Socket编程的端口问题( Bind error: Address already in use )
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- socket编程小问题:地址已经被使用——Address already in use
- Linux下Socket编程的端口问题( Bind(): Address already in use )
- 有关npm安装错误的问题
- LeetCode 297. Serialize and Deserialize Binary Tree
- $sce服务----- 将请求到的html代码 引入到项目中
- mac下导出kindle单词本的单词
- 10013---Are you aggressive
- 网络编程--Address already in use 问题
- (编程题)5-6 混合类型数据格式化输入
- 《HelloGitHub月刊》第10期
- 1047. Student List for Course (25)
- 九度OJ-1163:素数(未关联)
- 关于json的理解
- 设计模式之组合
- Android几行代码实现实时监听微信聊天
- Unity3d Hololens MR开发入门