實驗目的:用socket 模擬乙個微型的web伺服器,當py指令碼run起後,實微型web server架起了,然後用本地瀏覽器訪問127.0.0.1:8080(web server的ip_port)時web伺服器就會將網頁內容傳給瀏覽器,實現網頁瀏覽.
sw+sys: python3.7.2 + windows10 64bit
本地準備的server端網頁為**的hao123主頁(我已上載並上傳,點選這裡)
通過這個實驗讓我學到了:
1. 當get請求乙個主頁時,要完整的顯示乙個頁面(包括文字、、css絢染等)是要get多次請求的。
2. respone回覆本地頁網,open(filepath, rwa)時要特別的注意
import socket
import os
curfilepath = os.path.split(os.path.realpath(__file__))[0].replace("\\" , "/")
print(f'curfilepath: ')
def new_socket_server(new_socket, new_addr):
if new_addr[0] != '':
print(f'當前客戶端已連線上server端. ')
# 3.接收資訊
file_name = ''
request_data = new_socket.recv(1024).decode('utf-8')
if request_data != '':
print(f'有收到新的資訊,資訊如下:\n')
file_name = request_data.splitlines()[0].split(' ')[1]
print(f'file_name: ')
if file_name == '/':
file_name = '/index.html'
print(f'file_name: ')
with open(curfilepath + '/test.txt', 'a+') as f:
f.write(file_name + '\n')
# 4.回覆資訊
# 1.建立socket
tcp_server_socket = socket.socket(socket.af_inet, socket.sock_stream)
# 2.連線server
server_ip_port = ('127.0.0.1', 8080)
tcp_server_socket.bind(server_ip_port)
tcp_server_socket.listen(128)
whilecrhrvpxv true:
print('正在等待clienwww.cppcns.comt端連線... ...')
new_socket, new_addr = tcp_server_socket.accept()
new_socket_server(new_socket, new_addr)
new_socket.close()
if __name__ == '__main__':
main()
本文標題: python3實現微型的web伺服器
本文位址:
python3實現的web端json通訊協議
之前有用 python3開發 實現過tcp 協議的,後來又實現了 協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現 json 格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是 get協議,一塊是 post 協議,get 協議很簡單,直接就可訪問了,post...
python3實現的web端json通訊協議
之前有用python3實現過tcp協議的,後來又實現了http協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現json格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是get協議,一塊是post協議,get協議很簡單,直接就可訪問了,post協議,實際上把d...
python3實現的web端json通訊協議
之前有用python3實現過tcp協議的,後來又實現了http協議的通訊,今天公司想做乙個功能自動測試系統,下午弄了一會,發現json格式的實現可以更簡單一點,如下 簡單解說一下,一般與伺服器通訊分兩塊,一塊是get協議,一塊是post協議,get協議很簡單,直接就可訪問了,post協議,實際上把d...