デスクトップ アプリに接続する Win RT アプリを作成しており、UDP と TCP で通信を開始します。
Win RT からデスクトップに送信し、デスクトップから Win RT に送信できるという点で、TCP 通信を正常に実装しました。Win RT で StreamSocket を使用し、デスクトップで TcpListener を使用します。
また、Win RT からデスクトップに Udp データを問題なく送信することもできました。しかし、デスクトップから Win RT に送信されたデータを受信できません。次のコードを使用していますが、問題はありませんが、何か問題があるはずです。
var g = new DatagramSocket();
g.MessageReceived += g_MessageReceived;
g.BindEndpointAsync(new HostName("127.0.0.1"), "6700");
.
.
.
void g_MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
{ // <- break point here.
}
そのブレークポイントはコードを停止することはありません。つまり、メッセージを受け取ることはありません。StreamSocket では、reader.GetBytes() ではなく、reader.GetBuffers() でバイトを取得する必要があるため、IBuffer しか考えられません。ただし、それはデスクトップではなく Win RT で考える必要があることです。Tcpではバイトを送信するだけで、Win RTでバッファを取得するため、DatagramSocketでも同じことが起こるはずです。
- リーダー = データリーダー
君たちありがとう。