1つのクライアントから複数のクライアントへのTCP / IPリレー

1つのクライアントから複数のクライアントへのTCP / IPリレー

私はtcp / ipソケットを開いてリッスンし、同じポートに複数のクライアントを接続できるFedoraで実行されているLinuxツールを探しています。その後、あるクライアントがメッセージを送信すると、他のすべてのクライアントに転送されます。元のクライアントに戻すのではなく、元のクライアントに戻しても問題ありません。ここで、「リレー」が正しい用語であるかどうかはわかりません。おそらく他のキーワードを検索すると、より良い結果が得られます。明確に言えば、サーバーにはソケットの上にプロトコルがあってはなりません。プロトコルがある場合は、送受信時にのみクライアントに実装されます。追加の要件は、安定性が最も重要であることです。これがUDPではなくTCP / IPを見つける理由です。より安定的にするための他の提案も歓迎します。

私はいくつかの場所で解決策を見つけました。

https://cr.yp.to/ucspi-tcp/tcpserver.html異なる「プログラム」インスタンスを作成した後でも、まだ互いに通信する必要があるため、これは部分的な解決策です。

複数のクライアントを持つTCPプロキシ?私が探しているソリューションは、ポートに最初に接続されていないため、適切ではないようです。

https://stackoverflow.com/questions/9024227/duplicate-input-unix-stream-to-multiple-tcp-clients-using-socat/11362423ソケットに書き込むプロセスがないので、適切ではないようです。

最初の2つのリンクされた質問は私と一致しませんが、その中にはsocatがまだオプションであると信じるものがありますが、わかりません。

ベストアンサー1

どうですか?

socat tcp-listen:1234,fork,reuseaddr \
      'system:tail -fn +0 file & cat >> file'

おすすめ記事