【发布时间】:2016-02-18 14:17:22
【问题描述】:
我有一个通过 UDP 套接字接收数据的 WPF 应用程序。现在我需要将它移植到通用 Windows 平台,但是套接字没有接收到传入的数据。
private void Init()
{
socket = new Socket(SocketType.Dgram, ProtocolType.Udp);
socket.Bind(new IPEndPoint(IPAddress.Parse("192.168.0.1"), 55156));
socketAsyncArgs = new SocketAsyncEventArgs();
buffer = new byte[4096];
socketAsyncArgs.SetBuffer(buffer, 0, buffer.Length);
socketAsyncArgs.Completed += Receive_Completed;
}
private void Receive()
{
bool isPending = socket.ReceiveAsync(socketAsyncArgs);
if ( ! isPending)
Receive_Completed(socket, socketAsyncArgs);
}
永远不会调用Receive_Completed 方法。相同的代码在 WPF 项目中运行良好。我使用 WireShark 来验证数据包的到来。我还尝试使用 Windows.Networking.Sockets.DatagramSocket 得到相同的结果 - 套接字没有收到任何数据。
【问题讨论】:
标签: c# sockets networking udp win-universal-app