2011-03-14 136 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