該程式主要實現http伺服器最原始的響應功能,運用tcp套接字,使用單程序技術,只能在某一時間內處理乙個客戶端的請求。
對於客戶端瀏覽器的請求做出兩種可能的處理,一種是網頁存在時傳送該網頁給客戶端,不存在時傳送404請求失敗警告,該程式是http伺服器的1.0版本,後續還會發實現更多功能的更高版本。
from socket import *
#處理客戶請求,返回響應
def handleclient(connfd):
request = connfd.recv(4096)
requestheadlers = request.splitlines()
for line in requestheadlers:
print(line)
try:
f = open('index.html','r')
except ioerror:
#開啟檔案失敗,說明網頁不存在,傳送404
response += '====網頁沒有找到===='
#基礎配置,功能函式的呼叫
def main():
sockfd = socket()
sockfd.setsockopt(sol_socket,so_reuseaddr,1)
sockfd.bind(('0.0.0.0',8000))
sockfd.listen(10)
while true:
print('listen to the port 8000......')
connfd,addr = sockfd.accept()
#處理請求
handleclient(connfd)
connfd.close()
if __name__ == '__main__':
main()
C實現的 簡易的http伺服器
設定位址復用 ret setsockpot server fd,sol socket,so reuseaddr,on,sizeof on if ret 0 memset server addr,0,sizeof server addr 設定埠,ip,和tcp ip協議族 server addr.si...
50行實現簡易HTTP伺服器
話說由於一直很懶,所以部落格好像也沒怎麼更新。今天有空就寫一下吧。最近在看node.js的時候開始對http協議感興趣了,畢竟node一開始就是為了做web伺服器而產生的。於是試著想了一下大概的思路,基本上就是用socket建立連線,監聽埠,然後將請求 到我的伺服器,最後輸出響應就好了。今天上午花了...
簡易web伺服器
1.設定伺服器端口號,獲取伺服器ip位址。2.建立伺服器監聽socket socket 3.連線伺服器socket和埠號 bind 4.讓伺服器socket處於監聽狀態 listen 5.在迴圈中呼叫accept 獲取客戶端連線的socket。accept 預設阻塞,直到有客戶端連線後返回連線套接字...