SFML 套接字,返回 "Disconnected" 的 UDP 套接字是什么意思?

SFML sockets, what does a UDP socket returning "Disconnected" mean?

我正在使用 SFML 编写网络程序,据我所知,UDP 套接字是完全无连接的

当我尝试从我的套接字读取时,我得到了一个“断开连接”的错误代码,但文档似乎没有提到 UDP 套接字能够 return 这种错误(仅 TCP能够做到的)

断开连接的 UDP 套接字可能意味着什么?

虽然 UDP 作为一种协议是“无连接”的,但套接字 API 支持虚拟连接以允许面向连接的功能继续工作。当你在 UDP 套接字上调用 connect 时,OS 会像往常一样记住你设置的连接数据,并过滤掉与虚拟连接不一致的东西,这允许你使用像这样的接口recvsendgetpeername 因为对等点是隐式的。如果你不使用connect,那么你需要使用sendmsg这样的接口。 sendtorecvmsgrecvfrom,其中对等方正在按数据包进行通信。

就 SFML 而言,它不一定使用需要连接的东西,但它会将超时等其他错误重新映射到 Disconnected