私は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'