C# pcl插座不';t按预期进行多播
我想在WP8.1上试验UDP多播,发现了这个问题。C# pcl插座不';t按预期进行多播,c#,networking,windows-phone-8,udp,C#,Networking,Windows Phone 8,Udp,我想在WP8.1上试验UDP多播,发现了这个问题。 我已经创建了两个应用程序,一个在WP8.1上,一个在桌面上,我将只提供C#代码,因为WPF在这里是不相关的。 WP8.1: 桌面(几乎相同): 现在发生了什么(在实际手机上调试): 从桌面应用发送的消息不会发送到手机应用,反之亦然 从桌面应用发送的消息在桌面应用的输出中可见(如预期) 从手机应用发送的消息在手机应用输出中出现3次(是-MessageReceived事件触发3次) 在WP8.1模拟器上(与桌面应用程序在同一台PC上运行):
我已经创建了两个应用程序,一个在WP8.1上,一个在桌面上,我将只提供C#代码,因为WPF在这里是不相关的。
WP8.1: 桌面(几乎相同): 现在发生了什么(在实际手机上调试):
- 从桌面应用发送的消息不会发送到手机应用,反之亦然
- 从桌面应用发送的消息在桌面应用的输出中可见(如预期)
- 从手机应用发送的消息在手机应用输出中出现3次(是-MessageReceived事件触发3次)
- 正在应用之间发送消息
- 从手机应用发送的消息仍会在手机应用输出中出现两次
public sealed partial class MainPage : Page
{
int port = 11811;
string ip = "239.123.123.123";
UdpSocketMulticastClient udp;
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
}
async protected override void OnNavigatedTo(NavigationEventArgs e)
{
udp = new UdpSocketMulticastClient();
udp.MessageReceived += (sender, args) =>
{
var data = Encoding.UTF8.GetString(args.ByteData, 0, args.ByteData.Length);
Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
lblChat.Text += "\n" + data;
});
};
await udp.JoinMulticastGroupAsync(ip, port);
}
async private void btnSend_Click(object sender, RoutedEventArgs e)
{
var msgBytes = Encoding.UTF8.GetBytes(txtEntry.Text);
await udp.SendMulticastAsync(msgBytes);
}
}
public partial class MainWindow : Window
{
int port = 11811;
string ip = "239.123.123.123";
UdpSocketMulticastClient udp;
public MainWindow()
{
InitializeComponent();
udp = new UdpSocketMulticastClient();
udp.MessageReceived += (sender, args) =>
{
var data = Encoding.UTF8.GetString(args.ByteData, 0, args.ByteData.Length);
lblChat.Text += "\n" + data;
};
udp.JoinMulticastGroupAsync(ip, port);
}
async private void btnSend_Click(object sender, RoutedEventArgs e)
{
var msgBytes = Encoding.UTF8.GetBytes(txtEntry.Text);
await udp.SendMulticastAsync(msgBytes);
}
}