使用瀏覽器訪問python寫的服務器程序
代碼如下所示:
import socket import re import multiprocessing def service_client(client_socket): data = client_socket.recv(1024) recv_data=data.decode("utf-8") print(recv_data) #GET /index.html HTTP/1.1 ret=re.match(r"[^/]+ /([\S]+\s|\s)",recv_data) file_n="index.html" if ret: if ret.group(1)!=" ": print(ret.group(1)) file_n=ret.group(1) else: print("代碼有誤!") try: with open(file_n,"rb") as f: content=f.read() f.close() except Exception as r: print(r) content = "<h1>file not found<\h1>".encode("utf-8") header="HTTP/1.1 200 OK\r\n" empty="\r\n" response=(header+empty).encode('utf-8') client_socket.send(response) client_socket.send(content) client_socket.close() print("client_socket.close()已調用") def main(): tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) local_addr=("127.0.0.1",7788) tcp_socket.bind(local_addr) tcp_socket.listen(128) while True: client_socket, client_addr = tcp_socket.accept() p=multiprocessing.Process(target=service_client,args=(client_socket,)) p.start() # p.join() tcp_socket.close() if __name__ == "__main__": main()
注意:
1.開始的時候file_n沒有先定義,結果就報錯:local variable ‘file_n' referenced before assignment
2.正則表達式一定要先驗證篩取的內容是否正確。
3.要獲取程序同級文件夾中文件夾的文件,相對路基為“文件夾名/文件名”
4.tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 要加不然容易出現(xiàn)“address already in use"之類的故障
總結
以上所述是小編給大家介紹的使用瀏覽器訪問python寫的服務器程序,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
使用Python實現(xiàn)數(shù)據(jù)重采樣的示例代碼
數(shù)據(jù)重采樣是一種用于調整數(shù)據(jù)集大小或分布的技術,它涉及通過增加或減少數(shù)據(jù)點的數(shù)量來修改現(xiàn)有數(shù)據(jù)集,下面我們就來學習一下如何利用Python實現(xiàn)數(shù)據(jù)重采樣吧2023-11-11python如何處理matlab的mat數(shù)據(jù)
這篇文章主要介紹了python如何處理matlab的mat數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Python圖像處理之gif動態(tài)圖的解析與合成操作詳解
這篇文章主要介紹了Python圖像處理之gif動態(tài)圖的解析與合成操作,結合實例形式分析了Python基于PIL模塊解析gif文件,以及基于imageio庫合成gif文件的相關操作技巧,需要的朋友可以參考下2018-12-12Python利用Matplotlib繪制柱狀圖(豎直柱狀圖和水平柱狀圖)、直方圖和餅狀圖
這篇文章主要給大家介紹了關于Python利用Matplotlib繪制柱狀圖(豎直柱狀圖和水平柱狀圖)、直方圖和餅狀圖的相關資料,Python使用matplotlib畫圖是非常方便的,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12python機器學習之神經(jīng)網(wǎng)絡實現(xiàn)
這篇文章主要為大家詳細介紹了python機器學習之神經(jīng)網(wǎng)絡的實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10