尝试断开UdpClient时出现错误10057

时间:2016-12-19 14:49:15

标签: vb.net sockets vb.net-2010 udpclient

我正在尝试通过使用一个UdpClient创建一个简单的UDP服务器,它可以正常使用第一个连接,但是如果另一个IP向侦听的同一个端口发送内容,则会被忽略,因为据我所知,套接字已连接到另一个远程IP

MyUdpClient.Connect(RemoteIpEndPoint)
MyUdpClient.Send(Encoding.ASCII.GetBytes(ACK), ACK.Length)

因此,在发送ACK之后,我添加一行以断开与远程客户端的连接以便继续监听

MyUdpClient.Client.Disconnect(True)

但我收到错误10057。 “不允许发送或接收数据的请求,因为套接字未连接......”

很奇怪,因为远程客户端收到所有数据OK,我不明白发生了什么,试图发送什么?

有什么办法可以知道何时可以断开与当前远程客户端的连接?

我需要做的是回答每个数据包的ACK并将随机数据发送到最后一个向服务器发送内容的远程IP。

我有更多代码,但有点长,如果您需要,请告诉我。

1 个答案:

答案 0 :(得分:1)

与TCP相比,UDP是一种无连接协议。因此,您无法断开UDP客户端,因此错误是正确的(尽管有些误导)。

至于第二个连接失败的原因,我们需要查看您的服务器代码。也许您无意中关闭了服务器UDP套接字?