使用UDP套接字时为什么不需要listen()函数调用?

dra*_*fly 12 sockets

我只是对这个问题感到好奇,任何人都可以告诉我吗?

Mar*_*mes 11

TCP是服务器和客户端之间的流协议.该协议是可靠的,并且每个服务器<>客户端流需要单独的状态.使用listen/accept启动的connect协议设置此服务器<>客户端连接状态.UDP是一种无连接,不可靠的数据报(消息)协议,因此无需监听新连接 - 数据报可以从任何来源以任何顺序进入.


Shi*_*zou 4

这是因为 UDP 不像 TCP 那样是面向连接的,所以像 SOCK_STREAM 那样的监听/接受没有任何意义。尝试阅读Beej 网络编程指南中的“2.1. 两种类型的 Internet 套接字”段落,整个指南总体来说很有趣。