我想實現只使用一個端口(端口:6516)但可以處理來自多個客戶端的多個數據包的UDP服務器。我被告知要創建一個監聽套接字,但我無法理解。正如我所知,只有TCP可以執行監聽事件。如何製作多客戶端UDP服務器
有人能告訴我這種服務的正確和有效的方法嗎?我一直在搜索整個互聯網,但最終我還是沒有弄清楚自己的想法。非常感謝工作步驟(對於服務器和客戶端)。
謝謝。
我想實現只使用一個端口(端口:6516)但可以處理來自多個客戶端的多個數據包的UDP服務器。我被告知要創建一個監聽套接字,但我無法理解。正如我所知,只有TCP可以執行監聽事件。如何製作多客戶端UDP服務器
有人能告訴我這種服務的正確和有效的方法嗎?我一直在搜索整個互聯網,但最終我還是沒有弄清楚自己的想法。非常感謝工作步驟(對於服務器和客戶端)。
謝謝。
創建一個套接字(socket(AF_INET, SOCK_DGRAM, 0)
),bind()
它來港,開始打電話recvfrom()
它告訴你誰發送的報文,並sendto()
它發送一個數據包到特定的目標IP /端口 - 你需要管理的客戶端列表您自己,UDP套接字通常不與特定的遠程IP /端口相關聯,但會接受來自上述調用中指定的任何數據並將數據發送到該數據。
'bind()'是這裏的重要調用,這就是你的套接字在特定端口上偵聽的原因。 – Alnitak 2011-03-14 10:37:22
UDP套接字自動偵聽。沒有必要調用'listen'函數,就像你說的那樣是爲TCP設計的(實際上是任何面向連接的協議)。 – 2011-03-17 05:24:11