1

OS X を使用しています。MIDI キーボードが接続されています。Audio MIDI 設定で、MIDI イベントをキーボードからネットワークにリダイレクトします。ポート5004を使用していることがわかります:

ここに画像の説明を入力

注: 「who may connect me」を「誰でも」に設定し、「ライブ ルーティング」で MIDI キーボード ルーティングをネットワークに送信したことに注意してください。

C#/.NET スクリプト (Unity3D プロジェクト内) から、このポートをリッスンしようとします。

UdpClient udp;
udp = new UdpClient( 5004 ) // <-- SocketException: Address already in use

System.Object myObj = null;

udp.BeginReceive( 
        new AsyncCallback( UDP_IncomingData ), 
        myObj // udp_ep 
        );

static void UDP_IncomingData( IAsyncResult ar )
{
    Debug.Log( "GotData" );

    //Get the data from the response
    byte[] bResp = udp.EndReceive( ar, ref udp_ep );

    //Convert the data to a string
    string sResponse = Encoding.UTF8.GetString( bResp );

    //Display the string
    Console.WriteLine( sResponse );

    //Close the UDP connection
    udp.Close( );
}

このエラー メッセージが理解できません。もちろん、ポートは使用中です。MIDI キーボードはこのポートからブロードキャストする必要があります。

放送を聞くにはどうすればいいですか?

編集:私は今、新しい未使用のポートでUDPクライアントを作成し、興味のあるポートに接続する必要があると考えています:

udp = new UdpClient( 0 ); // <-- http://stackoverflow.com/questions/2456773/find-a-free-port

udp.Connect( "192.168.0.13", 5004 );

そのため、エラーは発生しなくなりました。しかし、MIDI キーボードのキーを押しても、受信データのコールバックがトリガーされません。なので、正解かどうかはまだわかりません。

4

0 に答える 0