最近學習網路程式設計,看了周立發老師的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 等許多協議。...