【发布时间】:2011-03-05 02:46:45
【问题描述】:
有没有人有关于 UDP 的 ReceiveFromAsync 工作的示例?我找不到任何示例代码。我可以找到一些 TCP 示例,但 msdn 说“ReceiveFromAsync 方法主要用于在无连接套接字上接收数据”。
谢谢, 尼克
【问题讨论】:
标签: c# sockets udp asynchronous
有没有人有关于 UDP 的 ReceiveFromAsync 工作的示例?我找不到任何示例代码。我可以找到一些 TCP 示例,但 msdn 说“ReceiveFromAsync 方法主要用于在无连接套接字上接收数据”。
谢谢, 尼克
【问题讨论】:
标签: c# sockets udp asynchronous
如果性能不是问题,一个快速简单的方法可能是 UdpClient 的 ReceiveAsync 方法:
https://msdn.microsoft.com/de-de/library/system.net.sockets.udpclient.receiveasync(v=vs.110).aspx
然后,您可以使用结果 (UdpReceiveResult) 来筛选要从中接收数据的特定远程端点。这是一个小例子:
private async void ReceiveBytesAsync(IPEndPoint filter)
{
UdpReceiveResult receivedBytes = await this._udpClient.ReceiveAsync();
if (filter != null)
{
if (receivedBytes.RemoteEndPoint.Address.Equals(filter.Address) &&
(receivedBytes.RemoteEndPoint.Port.Equals(filter.Port)))
{
// process received data
}
}
}
【讨论】:
也许使用 UdpClient 的 async BeginReceive() 方法可能更容易?
http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.beginreceive.aspx
【讨论】: