1.設定伺服器端口號,獲取伺服器ip位址。
2.建立伺服器監聽socket socket();
3. 連線伺服器socket和埠號 bind();
4. 讓伺服器socket處於監聽狀態 listen();
5. 在迴圈中呼叫accept(),獲取客戶端連線的socket。accept()預設阻塞,直到有客戶端連線後返回連線套接字。
6. 建立執行緒處理該套接字,使用recv()從socket中讀取字元。
7. 解析http請求報文,如
首先是請求方法,請求url,http協議版本。
host:主機名
8.將請求路徑轉換為本地路徑,將檔案的副本通過send()傳送。
9.響應報文
起始行:http協議版本,狀態碼。
首部:檔案型別,檔案長度。
10.傳送完畢後使用close()結束通訊。
1.udp伺服器
2.udp客戶端
3.tcp伺服器
4.tcp客戶端
python 簡易WEB伺服器
設計乙個web服務,滿足以下基本功能 建立套接字 使用埠號 6699 獲取http請求,並解析http請求報文 顯示請求報文各字段的欄位名和值,對部分字段進行說明 根據http請求報文獲得物件檔案路徑名 根據路徑名開啟本地檔案 封裝本地檔案到http響應報文 使用套接字傳送http相應報文 瀏覽器輸...
web伺服器 簡單web伺服器實現
三次握手 一般情況下是瀏覽器先傳送請求資料,c s ack 應答 三次握手成功後,才開始進行通訊資料的收發。四次揮手 一般情況下是客戶端先關閉,給瀏覽器傳送關閉資訊。如果瀏覽器傳送了關閉資訊,但是伺服器沒有回過去,較慢 那麼瀏覽器一直發是不是就會有問題?所以會等待 2msl的時間。一般為2 5分鐘。...
web伺服器 併發web伺服器實現 epoll
在linux的網路程式設計中,很長的時間都在使用select來做事件觸發。在linux新的核心中,有了一種替換它的機制,就是epoll。epoll 是當今 linux 系統採用的方式,一般伺服器都是用 epoll 來實現的。epoll 是一種方案,這種方案不使用多程序多執行緒多協程,而是使用單程序單...