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 キーボードのキーを押しても、受信データのコールバックがトリガーされません。なので、正解かどうかはまだわかりません。