web-dev-qa-db-ja.com

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

リスニング用にtcp/ipソケットを開き、同じポートで複数のクライアントを接続できるようにする、Fedoraで実行するLinuxツールを探しています。次に、1つのクライアントがメッセージを送信すると、それを他のすべてのクライアントに中継します。元のクライアントにリレーバックするのではなく、元のクライアントにもリレーバックする場合は問題ありません。ここで「リレー」が正しい用語であるかどうかはわかりません。おそらく、別のキーワードを検索したとしたら、より良い結果が得られたでしょう。明確にするために、サーバーによってソケットの上にプロトコルがあってはなりません。プロトコルがある場合は、送信と受信の両方でのみクライアントに実装されます。さらなる要件は、信頼性が最も重要なことであるということです。そのため、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/1136242 私はに書き込むプロセスがありませんソケットなので、適切ではないようです。

前の2つのリンクの質問は私のものと一致しませんが、そこにはsocatがまだオプションである可能性があると私に信じさせるものがありますが、私にはわかりません。

3
Flip

次のようなものはどうですか?

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