我是從實際意義上問的。在TCP中,accept()會爲每個connect()提供新的套接字。它允許只有一個服務器端口的多個併發通信。爲什麼UDP沒有「accept()」?
問題是爲什麼我們在UDP中沒有這樣的便利?不要告訴我UDP是無連接的,因此...從邏輯上講,accept()與此無關(底層IP無論如何都是無連接的)。
其中一個後果是,您必須應用大量的UDP端口,這可能會使防火牆設置複雜化。所以我的下一個問題是,關於端口和多路複用的多客戶端UDP應用程序的解決方案是什麼?在某些情況下,我想在UDP數據包中嵌入客戶端信息並讓服務器區分。但是固有地不接受(),某些待辦事項很難(例如,使用OpenSSL的UDP)。
謝謝你的洞察力。
'accept()'有**所有事情都與TCP有連接。 accept()的全部意義是獲得一個只包含來自**的數據的流,該連接按順序不丟失或重複。 – 2013-02-15 22:59:04