如何正确释放socket通信绑定的地址?

crystalfish 2003-10-16 03:09:08
我用socket进行通信,在服务器端用"ctrl+c"结束程序,或是程序自动运行到close(s)时,结束程序,但是这时当我重新运行程序时,会出现刚才使用的端口还在使用,过一段时间后,再运行就没有问题了,请问怎样才能在程序结束时,立即释放
绑定的地址?
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
deva 2003-10-17
  • 打赏
  • 举报
回复
还要补充一点就是close()只是把套接字描述符指向的套接字结构的引用计数减1
当引用计数为0时,系统将关闭套接字,与shutdown()有区别.close()与
shutdown(sockfd,SHUT_WR)相同,只是关闭写数据,而对方仍能向我方发数据!!

deva 2003-10-17
  • 打赏
  • 举报
回复
tcp的联接结束之后有2MSL的等待时间,在此期间是不能重用的,是为了忽略迟到的数据包
应该不 好立即释放吧!!!
udp不知是什么样?

4,354

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧