簡單TCP客戶 伺服器的理解

2021-09-11 05:26:36 字數 593 閱讀 4371

1. 伺服器部分:socket、bind、listen之後,for迴圈內accept獲取 「已連線套接字」 描述符、fork子程式處理該連線的資料傳輸。

2. 客戶端部分:socket、connect之後,呼叫資料傳送函式向該套接字內寫資料,即傳送資料。

1. 程序exit後,會關閉所有開啟的檔案描述符,包括套接字描述符。

2. 訊號處理:建立連線後的伺服器程序是乙個子程序,該程序結束後會向父程序傳送sigchld訊號。父程序必須處理這個訊號,來保證子程序結束後不會一直是殭屍程序。

3. 處理被中斷的系統呼叫:低速系統呼叫,以accept為例,當沒有客戶連線伺服器的時候,accept一直阻塞。低速系統呼叫就是可能會一直阻塞的函式。當程序接受到乙個訊號(通常是任意訊號)時,阻塞的低速系統呼叫會被中斷。可能會發生這種情況,父程序的accept在等待鏈結的過程中(阻塞狀態),子程序結束,傳送sigchld訊號給父程序,此時accept被中斷。父程序伺服器程式能夠處理這種中斷,選擇重啟動accept或其他。

4. 伺服器程序終止、伺服器主機崩潰、伺服器主機崩潰後重啟,客戶端程序結束的方式都有區別。

5. 在伺服器和客戶之間傳遞的資料格式可以根據具體情況選定,如文字串或二進位制結構。

TCP客戶 伺服器簡單Socket程式

建立乙個 tcp 連線時會發生下述情形 1.伺服器必須準備好接受外來的連線。這通常通過呼叫 socket bind 和 listen 這三個函式來完成,我們稱之為被動開啟。2.客戶通過呼叫 connect 發起主動開啟,這導致客戶tcp傳送乙個syn 同步 分節,標識希望連線的伺服器端口以及初始序號...

簡單的TCP伺服器

介紹 winsock api 是一套供 microsoft windows 作業系統使用的套接字程式庫,它最初基於 berkeley 套接字,但是其中加入了一些 microsoft 的特殊改動。在這篇文章中,我要試著給你介紹如何使用 winsock 來進行套接字程式設計,並假設你沒有在任何作業系統上...

tcp 客戶 伺服器程式示例

1 client 從標準輸入讀入一行文字,並寫給伺服器。2 伺服器從網路輸入讀入這行文字,並回射給客戶。3 客戶從網路輸入讀入這行回射的文字,顯示在標準輸出上 標準輸入 fgets tcp 客戶 write read tcp 伺服器 標準輸出 fputs tcp 客戶 read write tcp ...