內容:第4章 基於tcp的伺服器/客戶端(1)
第5章 基於tcp的伺服器/客戶端(2)
四層網路協議-
ip:處理資料報傳遞的協議,包括根據資料報中的目標ip選擇資料傳輸路徑。
注意:兩個資料報可能會經過不同的路徑到達相同的目的地;並且ip不保證資料報不丟
tcp:在ip協議之上通過ack和重傳保證資料報不丟,但資料報沒有邊界。
應用層協議:主要用於解決tcp協議下資料無邊界的欠缺。
基於tcp的伺服器/客戶端函式呼叫關係
伺服器執行listen()之後即開啟乙個守護程序,接受客戶端的連線請求;
被接受的客戶端請求會被放在伺服器的請求佇列中等待伺服器呼叫accept()來處理;
呼叫accept()後建立新的socket連線,不會占用守護程序的套接字;
客戶端呼叫的connect()在伺服器被接受之後即得到返回,不管伺服器端有沒有執行accept();
伺服器accept()是阻塞方法,所以如果伺服器希望同時處理多個客戶端請求那麼需要啟用多執行緒;
socket連線終止可以由任何一方發起;
tcp套接字中的i/o緩衝
socket中的read/write方法都是和本地的socket buffer互動,不和對方直接互動,這就是為什麼unix把socket當成檔案一樣的處理;
寫入socket buffer中的資料由作業系統處理,比如輸出緩衝中的資料會被寫入到對方的輸入緩衝,對socket程式設計透明;
write方法將資料寫入緩衝後就返回不會等待作業系統把資料送到對方緩衝中,除非對方一直不讀造成了對方緩衝滿進而自己的緩衝也滿的情況;
關閉socket連線時輸出緩衝中的資料會被繼續發出,但輸入緩衝中的資料將丟失;
tcp內部工作原理
與對方套接字的連線 - 三次握手
與對方主機的資料互動
斷開與套接字的連線 - 四次握手
TCP IP網路程式設計
tcp ip 是供已連線網際網路的計算機進行通訊的通訊協議。tcp ip 定義了裝置 並非只有計算機 如何連入網際網路,以及資料如何在它們之間傳輸的標準。ip internet protocol 網際網路協議。從這個名稱我們就可以知道ip協議的重要性。在現實生活中,我們進行貨物運輸時都是把貨物包裝成...
TCP IP網路程式設計
套接字 傳輸網路資料的軟體裝置。tcp的特點 可靠的 按序傳遞的 基於位元組的面向連線的資料傳輸方的協議。傳輸過程中資料不會消失,按序傳輸資料,傳輸的資料不存在資料邊界。udp的特點 不可靠的 無序的 以資料高速傳輸為目的的協議。強調快速傳輸而非傳輸順序,傳輸的資料可能丟失也可能損壞,傳輸的資料有資...
網路程式設計學習 tcp ip程式設計
tcp 不記錄訊息邊界 udp 記錄訊息邊界 用到的結構體 struct sockaddr un 例子 struct sockaddr un serveraddr serveraddr.sun family af unix server socket strcpy serveraddr.sun pa...