###WinRT(Windows Runtime)で、UDP Broadcastを受け取りたい
WinRT環境では、System.Net.SocketsのUdpClientなどは使えず、
代わりに、Windows.Networking.Socketsを使うと思うのですが、
この環境でUDPのBroadcastの送信は出来るものの、受信が出来ませんでした。
###UDP Broadcast送信コード
Csh
1var profiles = await NetworkInformation.FindConnectionProfilesAsync(new ConnectionProfileFilter 2{ 3 IsConnected = true 4}); 5foreach (var profile in profiles) 6{ 7 var socket = new DatagramSocket(); 8 var stream = await socket.GetOutputStreamAsync(new HostName("255.255.255.255"), "3000"); 9 socket.Control.DontFragment = true; 10 await stream.WriteAsync(Encoding.UTF8.GetBytes("Message FooBar").AsBuffer()); 11 await stream.FlushAsync(); 12}
###UDP Broadcast受信コード
Csh
1socket.MessageReceived += async (sender, args) => 2{ 3 var reader = new DataReader(args.GetDataStream()) { UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8 }; 4 await reader.LoadAsync(1024); 5 var data = reader.ReadString(reader.UnconsumedBufferLength); 6 Debug.WriteLine(data); 7}; 8await udpSocket.BindServiceNameAsync("3000");
###制約
送信側をブロードキャストではなくマルチキャストに変更などは出来ません。
WinRTでのUDPBroadcastの受信方法を御存じでしたらご教示頂けると嬉しいです。
よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/19 00:44