我有一个向网络服务器发送命令的设备。我已将这些命令重定向到我自己的服务器,目的是使用该设备运行我系统的另一部分。简而言之,设备发送命令,我拦截它们并使用它们。
命令发送到我的服务器,但不是有效的HTTP请求。我试图使用flask来阅读python,因为我想让这些命令直接进入另一个Web应用程序。
请注意,我无法更改命令的发送方式。
使用套接字,我可以读取数据。例如,这是通过套接字发送的数据版本(数据没有意义,只是为了说明):
b'#123456#A'
相反,HTTP消息如下所示:
b'POST / HTTP/1.1\r\nHost: 123.123.123.123:12345\r\nRequest info here'
我知道如何过滤这些(它们总是以#开头)。我可以挂钩以让我以不同的方式处理这些请求,在将它们解析为HTTP请求之前吗?
更新:我用来读取请求的代码,以防它提供上下文:
import socket
host = ''
port = 5000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(size)
print("Request:")
print(data)
print("\n\n")
if data:
client.send(data)
client.close()