博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SOCKET选项--SO_RESUSEADDR
阅读量:5960 次
发布时间:2019-06-19

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

  hot3.png

当接收方通过Socket的close()方法关闭socket时,如果网络上还有发送到这个Socket的数据,那么低层的Socket不会立刻释放本地端口,而是会等待一段时间,确保接收到了网络上发送过来的延迟数据,然后再释放端口.

Socket接收到延迟数据后,不会对这些数据作任何处理.Socket接收延迟数据的目的是确保这些数据不会被其他碰巧绑定到同样端口的新进程接收到.

为了保证一个进程关闭Socket后,即使他还没释放端口,同一个主机上的其他进程还可以立刻重用该端口,可以将  SO_RESUSEADDR 设置为true

需要注意的是 socket.setReuseAddress(true)方法必须在socket还没绑定在一个本地端口之前调用,否则无效

此外,两个共用同一个端口的进程必须都调用 socket.setReuseAddress(true)  ,才能使一个进程关闭Socket后,李一个进程的socket能够立刻重用相同端口

转载于:https://my.oschina.net/dyaod/blog/180628

你可能感兴趣的文章
用XSLT和XML改进Struts
查看>>
Beta冲刺——day6
查看>>
Comet OJ - Contest #3 题解
查看>>
[网络流24题-9]试题库问题
查看>>
jquery选择器详解
查看>>
C# 保留2位小数
查看>>
使用xshell远程连接Linux
查看>>
杭电ACM1007
查看>>
faster-RCNN台标检测
查看>>
Unix环境高级编程 centos中配置apue编译环境
查看>>
运算符
查看>>
数据结构之各排序算法
查看>>
网页分帧操作<frameset>,<iframe>标签
查看>>
Vue生产环境部署
查看>>
酒店之王
查看>>
html5判断用户摇晃了手机(转)
查看>>
VS下Qt4.8.4安装
查看>>
Linux df命令
查看>>
redhat6.5 配置使用centos的yum源
查看>>
取得内表的数据数
查看>>