您好,登錄后才能下訂單哦!
個人博客首頁(點擊查看詳情)-- https://blog.51cto.com/11495268
個人微信公眾號(點擊查看詳情)-- https://blog.51cto.com/11495268/2401194
????
????這個世界上有很多種套接字(socket)-- 如 DARPA Internet 地址(Internet 套接字)、本地節點的路徑名(Unix套接字)、CCITT X.25地址(X.25 套接字)等;Internet 套接字 是最具代表性的,也是最經典最常用的(我們日常中 提及套接字,指的都是 Internet 套接字);網絡編程 肯定 離開 套接字 這個概念,本文 描述 Internet 套接字(TCP、UDP) 基礎概念 相關 的基礎概念
????
????DARPA Internet 地址(Internet 套接字) 常用的套接字 主要有 流式套接字、數據報式套接字、原始套接字
????
????流格式套接字(Stream Sockets)也叫 "面向連接的套接字",在代 碼中使用 SOCK_STREAM 表示;SOCK_STREAM 是一種可靠的、雙向的通信數據流,數據可以準確無誤地到達另一臺計算機,如果損壞或丟失,重新發送
????
????SOCK_STREAM 使用了 TCP 協議(The Transmission Control Protocol,傳輸控制協議),TCP 協議會控制你的數據按照順序到達并且沒有錯誤
????發送端有自己的節奏,接收端也有自己的節奏,它們是不一致的(不管數據分幾次傳送過來,接收端只需要根據自己的要求讀取,不用非得在數據到達時立即讀取)
????
????流格式套接字的內部有一個緩沖區(也就是字符數組),通過 socket 傳輸的數據將保存到這個緩沖區;接收端在收到數據后并不一定立即讀取,只要數據不超過緩沖區的容量,接收端有可能在緩沖區被填滿以后一次性地讀取,也可能分成好幾次讀取
????
????瀏覽器所使用的 http 協議就基于面向連接的套接字,因為必須要確保數據準確無誤,否則加載的 HTML 將無法解析
????
????數據報格式套接字(Datagram Sockets)也叫 "無連接的套接字",在代碼中使用 SOCK_DGRAM 表示;計算機只管傳輸數據,不作數據校驗,如果數據在傳輸中損壞,或者沒有到達另一臺計算機,是沒有辦法補救的(也就是說,數據錯了就錯了,自身無法重傳)
????
????"數據的發送和接收是同步的"(接收次數應該和發送次數相同)
????
????QQ 視頻聊天和語音聊天就使用 SOCK_DGRAM 來傳輸數據
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。