SFML 套接字,返回 "Disconnected" 的 UDP 套接字是什么意思?
SFML sockets, what does a UDP socket returning "Disconnected" mean?
我正在使用 SFML 编写网络程序,据我所知,UDP 套接字是完全无连接的
当我尝试从我的套接字读取时,我得到了一个“断开连接”的错误代码,但文档似乎没有提到 UDP 套接字能够 return 这种错误(仅 TCP能够做到的)
断开连接的 UDP 套接字可能意味着什么?
虽然 UDP 作为一种协议是“无连接”的,但套接字 API 支持虚拟连接以允许面向连接的功能继续工作。当你在 UDP 套接字上调用 connect
时,OS 会像往常一样记住你设置的连接数据,并过滤掉与虚拟连接不一致的东西,这允许你使用像这样的接口recv
、send
和 getpeername
因为对等点是隐式的。如果你不使用connect,那么你需要使用sendmsg
这样的接口。 sendto
、recvmsg
和 recvfrom
,其中对等方正在按数据包进行通信。
就 SFML 而言,它不一定使用需要连接的东西,但它会将超时等其他错误重新映射到 Disconnected。
我正在使用 SFML 编写网络程序,据我所知,UDP 套接字是完全无连接的
当我尝试从我的套接字读取时,我得到了一个“断开连接”的错误代码,但文档似乎没有提到 UDP 套接字能够 return 这种错误(仅 TCP能够做到的)
断开连接的 UDP 套接字可能意味着什么?
虽然 UDP 作为一种协议是“无连接”的,但套接字 API 支持虚拟连接以允许面向连接的功能继续工作。当你在 UDP 套接字上调用 connect
时,OS 会像往常一样记住你设置的连接数据,并过滤掉与虚拟连接不一致的东西,这允许你使用像这样的接口recv
、send
和 getpeername
因为对等点是隐式的。如果你不使用connect,那么你需要使用sendmsg
这样的接口。 sendto
、recvmsg
和 recvfrom
,其中对等方正在按数据包进行通信。
就 SFML 而言,它不一定使用需要连接的东西,但它会将超时等其他错误重新映射到 Disconnected。