2011-03-14 134 views
3

我已经创建了一个UDP套接字(UDP已被绑定),现在我想让服务器监听,如果有客户端尝试连接,监听UDP将接受并将套接字传递给新线程执行recvfrom和sento操作。监听UDP和监听

那么我该怎么做呢?客户如何告诉服务器他想连接?我可以在UDP中使用FD_CONNECTFD_ACCEPT吗?

谢谢。

回答

3

UDP是无连接协议。您不需要连接udp套接字。请注意,在UDP套接字上使用连接可能会有不同的语义方面:在Linux上,例如在UDP套接字上调用的连接,将套接字“绑定”到特定的IP地址,但这只是本地绑定,网络上没有任何事情发生。

+0

那么我如何知道客户端想要连接服务器呢?那是什么FD事件? – 2011-03-14 08:38:53

+0

@Chicko Bueno:UDP中没有连接。您只需接收或发送数据报。这是因为UDP不需要握手来建立连接参数。它比TCP更快但更不可靠。当你收到一个UDP数据报时,你可以像使用TCP一样使用经典的recv读取它。 – Heisenbug 2011-03-14 08:43:48

+0

@Overbose感谢您的反馈。如果我想知道客户端的存在,我只需要我的UDP等到客户端发送一些数据,并且事件对应于FD_READ。我对么? – 2011-03-14 09:08:08