形象的比方來介紹下對TCP UDP SOCEKT的理解

對于TCP協(xié)議來說, SOCKET就相當(dāng)于是一個現(xiàn)實生活中的個人招待所. 首先來說個人招待所要有個位置,所以通過bind, 把這個個人招待所的位置確定好, 個人招待所的服務(wù)員也得要得到消息了才能夠上班來接待顧客, 所以要listen,??蛻衄F(xiàn)在就可connect到接待處, 任何客戶要進入, 都首先得要被個人招待所Accept, 得到一個臨時通行證, 才能夠在個人招待所里進行各種業(yè)務(wù), 而被接待后, 有什么事, 得要拿臨時通行證來識別每一個客戶, 而輪到服務(wù)某個客戶的時間, 也是通過這個臨時通行證呼叫客戶才能夠通信。
所以 TCP 的服務(wù)器, 創(chuàng)建SOCKET, bind, listen, accept, 然后再用accept回來的客戶專用臨時通行證進行交流. 客戶走的時候也必須把臨時通行證回收, 也就是關(guān)閉accept回來的socket.
由此可見TCP有用于監(jiān)聽的套接字和用于接待的的套接字,共兩個。

對于UDP協(xié)議來說, SOCKET就相當(dāng)于想是生活中的網(wǎng)絡(luò)客服, 一個網(wǎng)絡(luò)客服可以同時服務(wù)N個顧客, 只要顧客發(fā)消息過來了, 這個網(wǎng)絡(luò)客服就可以跟顧客進行聯(lián)系, 并且這個網(wǎng)絡(luò)客服可以處理很多消息, 任何顧客發(fā)消息過來,網(wǎng)絡(luò)客服都迅速的同時處理這些消息. 但是, 只要顧客不來消息聯(lián)系網(wǎng)絡(luò)客服,網(wǎng)絡(luò)客服就沒什么必要主動聯(lián)系.
UDP的服務(wù)器, 只要bind以后就可以直接等待recvfrom, 有人sendto東西過來, 就立即做事, 沒有sendto過來, 也沒什么必要做事. 雖然不排除服務(wù)器隔開一段時間后主動向客戶發(fā)送東西, 但這個客戶到底還在不在, 已經(jīng)不知道了. 所以一般服務(wù)器是懶得動的,所以udp只要知道IP地址和端口號就可以連接了,其他的不用理會。
由此可見udp只需要一個套接字就可以了。

再總結(jié)下吧,從這上面的流程看得出來了吧:
tcp有監(jiān)聽還有能接待,比較負(fù)責(zé),也就是說它的可靠性好,安全性高,但是效率要差點。
udp來說,雖然他不像tcp那么負(fù)責(zé),也就是他可靠性不高,但是有信息來他馬上就直接處理,說明他效率高。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容