我正在阅读关于socat here和这里的文档。
示例socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/test.log,creat,append
在使用和不使用选项reuseaddr
时都能很好地工作。
我已经在这两种情况下使用-f
选项来跟踪分叉,但还没有看到SO_REUSEADDR
和SO_REUSEPORT
。reuseaddr
是做什么的?为什么上面的例子在使用和不使用reuseaddr
的情况下都能很好地工作?在哪些情况下确实需要reuseaddr
?
关于tcp/udp和reuseaddr
选项还有什么其他说明吗?
1条答案
按热度按时间bqf10yzr1#
这是最重要的部分:www.example.comhttp://www.dest-unreach.org/socat/doc/socat.html#EXAMPLE_OPTION_REUSEADDR
由于reuseaddr,它允许在主进程终止后立即重新启动,即使一些子套接字没有完全关闭
因此,只有 * 在某些子套接字没有完全关闭 * 的情况下,才能看到差异。
我已经尝试了您的示例,可以看到(使用lsof)套接字上的reuseaddr选项已激活