socat -dd -u TCP:192.168.1.2:2222,reuseaddr,fork TCP-LISTEN:55555,reuseaddr,fork
Socat连接到外部TCP端口,接收数据,并开始侦听端口55555上的连接。尝试了两个地址中带有和不带有上述参数的所有变体。
结果是这样的: 将2个客户端连接到在端口55555上运行socat的计算机时,数据将被拆分为两个,而不是重复。
如何真正地复制以便所有客户端都获得所有数据?
编辑:
显然我没有测试所有变体。
这似乎可行:socat -dd -u TCP:192.168.1.2:2222,reuseaddr,fork TCP-LISTEN:55555,reuseaddr
fork
不应位于第二个地址部分。
现在发生的是不停地打印以下错误:
2019/11/05 22:58:24 socat[11] N childdied(): handling signal 17
2019/11/05 22:58:24 socat[11] N successfully connected from local address AF=2 192.168.1.3:58418
2019/11/05 22:58:24 socat[11] N forked off child process 214
2019/11/05 22:58:24 socat[214] E bind(6, {AF=2 0.0.0.0:55555}, 16): Address in use
2019/11/05 22:58:24 socat[214] N exit(1)
所以还是有问题。
我开始怀疑socat是否真的可以将单 TCP连接连接到某个地方,然后像广播服务器一样复制和传播它。 这表明没有任何TCP特征:https://serverfault.com/a/570764