我的申请中有一个例外,我对此感到困惑
我确实有一个方法
private void ListenForClients()
{
UdpClient client;
while (true)
{
try
{
client = oUdpClient;
Remote_EndPoint = new IPEndPoint(IPAddress.Any, 0);
client.Receive(ref Remote_EndPoint);
client.Connect(Remote_EndPoint);
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
catch (SocketException ex)
{
client = null;
}
}
}
我得到的错误是
断开插座后,您只能重新连接 异步,并且只对不同的EndPoint。 BeginConnect必须 在一个线程上被调用,该线程在操作完成之前不会退出 完成。
从该行
client.Connect(Remote_EndPoint);
我从
跟踪时遇到了其他错误Remote_EndPoint.Address.ScopeID
是
'Remote_EndPoint.Address.ScopeId'引发了类型'System.Net.Sockets.SocketException'的异常
那么异常的解决方案是什么
答案 0 :(得分:0)
如果我错了,请纠正我,但是你将这个UdpClient设置为听众,对吗?
不需要使用Connect方法(UdpClient对象用作发射器来识别远程接收器);一旦识别出本地端点,就会设置监听器模式。
UDP本身并不建立连接(这是其表兄,TCP协议的特征) - 因此,错误消息具有误导性;没有断开连接的UDP套接字。
这篇文章对您有所帮助: