尝试断开 UdpClient 时出现错误 10057

问题描述 投票:0回答:1

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

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

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

MyUdpClient.Client.Disconnect(True)

但是我收到错误 10057。

“由于套接字未连接,发送或接收数据的请求被禁止......”

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

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

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

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

vb.net sockets vb.net-2010 udpclient
1个回答
1
投票

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

至于为什么第二次连接失败,我们需要查看你的服务器代码。也许您也不小心关闭了服务器 UDP 套接字?

© www.soinside.com 2019 - 2024. All rights reserved.