作者回复: 总结得不错。
作者回复: 👍
作者回复: 因为SO_REUSEADDR是针对新建立的连接才起作用,对已建立的连接设置是无效的。
作者回复: UDP用的比较少,实例确实比较难以想到。
作者回复: 你的理解是对的。
作者回复: 应该这样说是将原来处于TIME_WAIT状态的连接变成可利用的,而FIN是在TIME_WAIT状态之前已经发送出去了,不会引起对端一直处于等待状态。
作者回复: 太暴力了吧
作者回复: 这个,给他们提issue吧。
作者回复: SO_REUSEPORT用在多个不同的socket监听在同一个端口上,这种情况比较罕见,容易出现所谓的"惊群"现象。当然,如果用的好,也可以解决一些特定场景的问题。
作者回复: 不是冲突的,SO_REUSEADDR是直接复用TIME_WAIT状态的连接,上一次连接的旧数据包会被忽略掉。
作者回复: $telnet 127.0.0.1 43211
作者回复: 当然不会,TCP四元组,里面就有你这里提到的server_port。它改变了,四元组就不唯一了呀。
作者回复: 哈哈,我写得很累的说。
作者回复: 哈哈,好在我们有大把的端口可以使用的。