1

rug.osc を使用してローカル マシンで UPD パケットを送信するアプリケーション Kinectv2osc があります。しかし、ポートをバインドしているようで、puredata (OSCdump) に接続してこれらの osc メッセージをリッスンすることはできません。

アプリケーションを逆の順序で起動すると、puredata は接続できますが、Kinectv2Osc は接続できません。

両方のアプリケーションがポートをバインドしようとしていると思いますが、どのアプリケーションが原因でしょうか? これら 2 つのアプリケーションを連携させるための回避策はありますか?

4

1 に答える 1

1

もう少し詳細が役立つでしょうが、これは役立つかもしれません。

ローカル ポートとリモート ポートで衝突が発生している可能性があります。デフォルトでは、Rug.Osc はローカルとリモートに同じポートを使用します。もう一方の端が同じことをしている場合、これは問題になる可能性があります。アプリケーション/ソケットがうまく動作し、ポートを共有できるようにすることは可能です。Rug.Osc はこれを試みますが、他の人は同じように感じないかもしれません。

これを修正するには、Rug.Osc がバインドするローカル ポートもオーバーライドします。0 を使用すると、OS は使用されていないポートを選択します。

IPAddress address = IPAddress.Parse("127.0.0.1"); 
int remotePort = 12345;

// force the OS to select an unused port
int localPort = 0; 

using (OscSender sender = new OscSender(address, localPort, remotePort)) 
{
    sender.Connect();

    sender.Send(new OscMessage("/test", 1, 2, 3, 4));
}

免責事項: Rug.Osc は私のプロジェクトです。

于 2015-01-02T13:34:43.367 に答える