tcp ip 學習筆記

2021-05-09 17:59:41 字數 1118 閱讀 4468

最近學習網路程式設計,看了周立發老師的blog 也模仿寫了乙個檔案管理併發伺服器。

選擇多程序併發伺服器

技術難點:建立tcp 伺服器

fork 產生新的處理程序

使用getopt 函式使伺服器配置引數化, 使用同一的linux風格

設定埠復用,??

瀏覽檔案系統,

思路:1 首先建立乙個被動套接字

設定套接字的option選項

註冊乙個訊號量 來**僵死程序,**系統資源

2 使用getopt 函式遍歷分析使用者的引數錄入

host 位址, port,  listen_num,  log_addr

3 bind ,listen

進入迴圈處理

accept

如果有連線到來則進入乙個新的程序,父程序並關閉新連線的套接字。

子程序要關閉主套接字。

4 判斷使用者的請求

基於瀏覽器

傳送過來http 請求

使用sscanf 函式 獲取請求字串

在該socketfd 標示符 開啟乙個寫 的標示符 newfd = fdopen( sockfd, "w");

則對newfd 寫, 就會利用關聯的socketfd 對客戶段傳送寫資料。

fprintf( newfd, "format%s", "hello");       

5 使用者根據預設目錄和請求 組合成絕對路徑 判斷該路徑的屬性

使用 s_isreq 和 s_isdir 來判斷其是檔案還是資料夾

如果是資料夾 ze

opendir 遍歷該資料夾

使用stat 函式得到該資料夾中所有檔案和子資料夾的屬性

利用fprintf 和 newfd 向客戶段寫資料

如果是檔案

動態開闢一段空間,傳送到客戶段

如果要以附件的形式,則要寫標準http包頭

使用到的關鍵函式

stat

sscanf

fdopen

fprintf

s_isreq

s_isdir

opendir

readdir

setsockopt

socket

Tcp ip學習筆記

分層 網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。乙個協議族,比如t c p i p,是一組不同層次上的多個協議的組合。t c p i p通常被認為是乙個四層協議系統,如圖1 1所示。每一層負責不同的功能 1 鏈路層,有時也稱作資料鏈路層或網路介面層,通常包括作業系統中的裝置驅動程...

TCP IP 學習筆記

1 擁塞避免演算法 名稱解釋 報文段 tcp一次傳輸所傳送的一定長度的位元組段。tcp的滑動視窗機制,作為接收方管理傳送方傳送資料量的手段,以防止接收方的接收緩衝區因為滿而溢位。擁塞視窗 cwnd 接收端通知視窗 rwnd 慢啟動閥值 ssthresh 慢啟動的特徵 1 cwnd被初始化為乙個資料報...

TCP IP 學習筆記

參考文件 linux網路程式設計 1 internet 協議 ip 2 傳輸控制協議 tcp 和使用者資料報文協議 udp 3 處於 tcp 和 udp 之上的一組協議專門開發的應用程式。它們包括 telnet,檔案傳送協議 ftp 網域名稱服務 dns 和簡單的郵件傳送程式 smtp 等許多協議。...