我有一个小形式(FORM2),就像一个弹出窗口。它将IPAddress作为参数并连接到它。下面的代码显示了连接
myNewUDP.newUDPClient = new UdpClient();
myNewUDP.newEP = new IPEndPoint(IPAddress.Parse("255.255.255.255"), PORT);
IPEndPoint newBindEP = new IPEndPoint(IPAddress.Any, PORT);
//Set port to listen to
myNewUDP.newUDPClient.Client.Bind(newBindEP);
当我第一次拨打弹出窗口时,它正确连接到设备。但是,在后续调用期间它会抛出异常"每个套接字地址只允许使用一次"。我该如何解决这个问题?有没有办法关闭IP和端口绑定?
答案 0 :(得分:2)
连接意味着连接到其他端点。这里你是绑定,这意味着你自己保留protocol / port / ip。删除套接字上的绑定调用Close()
。
由于您直接在底层套接字上调用UdpClient
,因此您有点奇怪地使用Bind()
。你可以使用普通的Socket
。或者您可以使用实际的UdpClient
来处理所有事情。