socket设置复用方法setReuseAddress的疑问?

来源:4-5 案例实操-TCP传输初始化配置-1

PerryMore

2019-02-27

在课件中有如下的注解图片描述

这句话是说,这个设置操作需要在bind方法后进行调用吗?

后来无意中看到源码中的解释
图片描述

需要在bind操作前进行设置才有效。

所以是我哪里理解错了吗?望解答!

写回答

1回答

Qiujuer

2019-02-27

好吧是表述有误,是需要在bind()之前进行设置的。课程也是这样的意思。

“对于指定bind操作后的套接字有效“

也就是说,这个参数需要和bind连用,如果没有使用bind方式那么是自动分配端口所以就没有用处。
对于bind就是绑定到对应的端口,所以这个参数有效;但是得在bind之前设置。


这个参数的意思是:

允许复用之前使用过的端口,并在之前端口未完全关闭的情况下使用;这有风险,比如上一个链接可能存在消息未读取完成,那么这里会收到之前一个消息的数据。

0
1
PerryMore
嗯嗯,是我理解的问题,谢谢老师的耐心解答。
2019-02-27
共1条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程