gpt4 book ai didi

python - 如何通过python请求连接发送原始数据

转载 作者:行者123 更新时间:2023-12-02 09:35:36 29 4
gpt4 key购买 nike

我正在与一个服务器交互,该服务器一开始需要一些http通信(与GET/POST握手),但后来切换到通过tcp的原始数据包。使用最后一个带有“connection: keep-alive” header 的“GET”数据包建立的连接来发送和接收原始数据包。我已设法使用response.raw._fp.read() 和stream=True 读取传入数据,但我找不到将数据发送回服务器的方法。

我所说的原始数据包是指字节流,没有任何方法/url 或 header 。

resp = session.get(
'http://server.server/test',
stream=True
)

while True:
try:
header = resp.raw._fp._safe_read(8)
if header[3]>0:
data = resp.raw._fp._safe_read(header[3])
except http.client.IncompleteRead:
break

最佳答案

您想要做的是从请求创建的连接中获取底层套接字,幸运的是您可以为流连接执行此操作。

import requests
import socket
r = requests.get('http://server.server/test', stream=True)
s = socket.fromfd(r.raw.fileno(), socket.AF_INET, socket.SOCK_STREAM)

之后,您可以像使用任何其他套接字一样发送数据。对于非流连接,文件描述符在返回响应对象之前被清理,因此您也可以在“响应”回调中实现它。

关于python - 如何通过python请求连接发送原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51709517/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com