マシンに UDP ネットワーク トラフィック (正確には iPad からの OSC トラフィック) が届いており、2 つのプログラムがそのトラフィックを受信できるようにしたいと考えています。問題は、一度に 2 つのプログラムで同じネットワーク ポートにバインドできず、使用している iOS アプリで複数のポートに送信できないことです。どうすればこの問題を解決できますか?
3 に答える
2
これには、コマンド ラインの機能を使用できます。次のスニペットでは、socat
(おそらく事前にインストールする必要があります) とtee
(OS X または Linux に事前にインストールする必要があります) を使用しています。
socat -u UDP4-RECVFROM:8123,fork - | tee >(socat -u - UDP4-SENDTO:localhost:8223) | socat -u - UDP4-SENDTO:localhost:8323
説明:socat
は UDP ポート 8123 でトラフィックをリッスンし、それを にパイプします。これは、それを localhost のポート 8223 および 8323 にそれぞれ転送tee
する 2 つの他のインスタンスにパイプします。socat
2 つのプログラムを使用して、localhost でこれらのポートをリッスンする必要があります。
于 2014-05-02T07:14:11.330 に答える
0
問題は、2 つのプログラムを同時に同じネットワーク ポートにバインドできないことです。
はい、できます。SO_REUSEADDR
バインドSO_REUSEPORT
する前に、両方を設定するだけです。
于 2014-05-02T08:46:28.347 に答える