python循環(huán)接收http請(qǐng)求數(shù)據(jù)方式
python循環(huán)接收http請(qǐng)求數(shù)據(jù)
最近做一個(gè)項(xiàng)目需要測(cè)試http請(qǐng)求,大量密集的http請(qǐng)求測(cè)試,網(wǎng)上只找到了postman這種client工具,沒(méi)有發(fā)現(xiàn)http server工具,于是想手寫(xiě)一個(gè)。
聽(tīng)聞python快捷,網(wǎng)上找了一個(gè),但是只能接收一次數(shù)據(jù),于是改動(dòng)了一下,測(cè)試了一下效果還不錯(cuò),這里記錄一下。
# coding:utf-8
#環(huán)境:python2.7
import socket
from multiprocessing import Process
if __name__ == "__main__":
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 8000))
server_socket.listen(128)
client_socket, client_address = server_socket.accept()
while True:
request_data = client_socket.recv(10240)
print("request data:", request_data)
# 構(gòu)造響應(yīng)數(shù)據(jù)
response_start_line = "HTTP/1.1 200 OK\r\n"
response_headers = "Server: received\r\n"
response_body = "<h1>Python HTTP Test</h1>"
response = response_start_line + response_headers + "\r\n" + response_body
# 向客戶(hù)端返回響應(yīng)數(shù)據(jù)
client_socket.send(bytes(response))python獲取http請(qǐng)求報(bào)文數(shù)據(jù)
import socket
if __name__ == '__main__':
# 1.創(chuàng)建tcp服務(wù)端套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.綁定端口(端口號(hào)可以修改)
tcp_server_socket.bind(("", 8989))
# 3.等待接收客戶(hù)端的連接請(qǐng)求
service_client_socket, ip_port = tcp_server_socket.accept()
print(ip_port)
# 4.接收客戶(hù)端發(fā)送的http請(qǐng)求報(bào)文數(shù)據(jù)
recv_fata = service_client_socket.recv(4096)
# 5.顯示原始http請(qǐng)求報(bào)文數(shù)據(jù)
print(recv_data)
service_clinent_socket.close()
tcp_server_socket.close()總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python起點(diǎn)網(wǎng)月票榜字體反爬案例
大家好,本篇文章主要講的是python起點(diǎn)網(wǎng)月票榜字體反爬案例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
pandas初學(xué)者容易犯的六個(gè)錯(cuò)誤總結(jié)
Pandas是Python的一個(gè)數(shù)據(jù)分析包,該工具為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建,Pandas納入大量庫(kù)和標(biāo)準(zhǔn)數(shù)據(jù)模型,提供高效的操作數(shù)據(jù)集所需的工具,這篇文章主要給大家介紹了總結(jié)介紹了pandas初學(xué)者容易犯的六個(gè)錯(cuò)誤,需要的朋友可以參考下2021-10-10
Python中時(shí)間類(lèi)型的JSON數(shù)據(jù)轉(zhuǎn)換
在Python中,處理時(shí)間和日期數(shù)據(jù)以及與JSON數(shù)據(jù)的相互轉(zhuǎn)換是常見(jiàn)的任務(wù),本文主要為大家詳細(xì)如何在Python中處理時(shí)間類(lèi)型的JSON數(shù)據(jù)轉(zhuǎn)換,需要的小伙伴可以參考下2024-02-02
pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式示例
pytest提供了許多運(yùn)行命令以供定制化運(yùn)行某一類(lèi)測(cè)試用例或者某個(gè)測(cè)試用例等,下面這篇文章主要給大家介紹了關(guān)于pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12
python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能
wxpython沒(méi)提供界面跳轉(zhuǎn)的方式,所以就需要借助threading模塊,本文給大家分享python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能,感興趣的朋友跟隨小編一起看看吧2019-12-12
Tornado Web服務(wù)器多進(jìn)程啟動(dòng)的2個(gè)方法
這篇文章主要介紹了Tornado Web服務(wù)器多進(jìn)程啟動(dòng)的2個(gè)方法,Tornado是一個(gè)用Ptyhon寫(xiě)的WEB服務(wù)器,需要的朋友可以參考下2014-08-08
python使用urllib模塊開(kāi)發(fā)的多線程豆瓣小站mp3下載器
對(duì)豆瓣音樂(lè)小站頁(yè)面html分析出所有mp3(正則匹配)文件url,然后用urllib.urlretrieve中方法直接將文件下載到本地,通過(guò)多線程技術(shù)下載2014-01-01
PyTorch?Dataset與DataLoader使用超詳細(xì)講解
用于處理數(shù)據(jù)樣本的代碼可能會(huì)變得凌亂且難以維護(hù);理想情況下,我們希望數(shù)據(jù)集代碼與模型訓(xùn)練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供的torch.utils.data.DataLoader和torch.utils.data.Dataset允許你使用預(yù)下載的數(shù)據(jù)集或自己制作的數(shù)據(jù)2022-10-10
Python從文件中讀取指定的行以及在文件指定位置寫(xiě)入
這篇文章主要給大家介紹了關(guān)于Python從文件中讀取指定的行及在文件中指定位置寫(xiě)入的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

