用python寫乙個簡單的web伺服器

2021-09-13 16:45:59 字數 1844 閱讀 6426

人生苦短,我用python

簡潔高效,這才是理想的語言啊

分享一點python的學習經驗-----如何用python寫乙個簡單的web伺服器

首先,我們需要簡單地了解一下網路通訊協議,這裡用白話介紹一下tcp和udp這兩種傳輸層的協議

tcp:通訊過程之中每次通訊都會進行確認操作,確保報文的安全送達,相當於用對講機說話,web伺服器和客戶端就是此採用此協議。

udp:通訊之中不需要確認操作,只完成報文的單項傳輸,相當於寫信,dns伺服器與客戶端的通訊就是採用此協議。

再要了解乙個網路程式設計中的概念,就是socket套接字,socket用於建立乙個網路鏈結,建立套接字需要指定使用的協議和目標主機的ip和埠號,埠號計算機中通訊過程中用於標記應用程式的乙個序號,每個執行中的程式都會占用至少乙個埠號

下面**

[python] view plain copy

import socket

my_ip = '這裡填你電腦的ip位址0.0'#可在命令列中輸入 ipcongig 檢視

s = socket.socket(socket.af_inet,socket.sock_stream) #建立乙個套接字

s.bind((my_ip,8080))繫結ip與埠 這裡埠填的8080

s.listen() #監聽。

new_s,adress = s.accept() #這裡accep()用於返回乙個通訊時的套接字和請求主機的位址

print(new_s.recv(1024),'n',adress) #recv()用於接受資料,相應的send()用於傳送資料

執行這段**,然後開啟瀏覽器,在位址列輸入ip:8080格式的位址,然後你就可以看到python程式列印出了兩個資料,一是客戶端的請求,再就是你的ip和你瀏覽器的埠組成的元組

當然這樣我們並不滿足,我們需要給瀏覽器返回乙個資料,並顯示一些東西

於是我們只需要可以傳送相應格式的資料,就可以在瀏覽器中顯示了,而資料格式應該類似於

rn #此處應該包括很多引數資料,這裡不細講

hello world!!

然後我們完善**

client_connection.close()開啟瀏覽器,輸入ip:8080

就可以在網頁上看到 hello,world!了

當然這是最簡單的一種情形,做個了解足夠了。

用python寫乙個簡單的視窗

import sys if name main 建立乙個視窗 w qwidget 設定視窗的尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗的標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈 並通...

ROS 用Python寫乙個簡單服務

一.編寫服務資料 在功能包的頂級目錄中,建立srv資料夾,並在裡面建立.srv檔案 先成為a.srv 在srv檔案中,填入服務資料,如 int64 a int64 b int64 sum其中,上方是請求資料,下方是答應資料 二.修改cmakelist和package.xml cmakelist ca...

用python寫乙個簡單的彈球遊戲

用python寫乙個簡單的彈球遊戲,可以使用球拍接住球讓球在邊框內不停的彈動,如果球拍沒有接住則遊戲結束 我們需要匯入tkinter模組來建立畫布 匯入時間模組來控制球的速度,就是控制球移動的間隔時間 匯入隨機模組使球彈的方向是隨機的。fromtkinterimport importtime imp...