问题描述
我目前正在尝试重构一些旧代码,并达到了尝试异步进行 UDP 通信的程度。我的旧代码接收数据包:
ClientListener = new UdpClient(ClientListenPort);
ServerEp = new IPEndPoint(IPAddress.Any,ClientListenPort);
try
{
while (!stop)
{
byte[] ReceivedData = ClientListener.Receive(ref ServerEp);
LastReceivedTimeMS = Environment.TickCount;
if (!FoundServer)
{
ServerIP = ServerEp.Address.ToString();
FoundServer = true;
}
HandleReceiveData(ReceivedData);
}
}
catch (Exception e)
{
Debug.Log("Error: " + e);
}
而异步方式不接收任何东西(挂起)。有人知道我做错了什么吗?
ClientListener = new UdpClient(ClientListenPort);
ServerEp = new IPEndPoint(IPAddress.Any,ClientListenPort);
try
{
Task.Run(async () =>
{
while (!stop)
{
UdpReceiveResult receivedResults = await ClientListener.ReceiveAsync();
if (!FoundServer)
{
ServerIP = receivedResults.RemoteEndPoint.Address.ToString();
ServerEp = receivedResults.RemoteEndPoint;
FoundServer = true;
}
HandleReceiveData(receivedResults.Buffer);
}
});
}
catch (Exception e)
{
Debug.Log("Error: " + e);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)