Я использую python3, у меня есть скрипт на сервере, который получает UDP-запросы от клиента, а затем сервер переводит эти запросы в tcp и передает их внутренне в скрипт py на сервере.
Мой вопросМой сценарий tcp_to_udp на сервере знает, что первым запросом всегда являются заголовки, а затем данные.Как сделать так, чтобы в моем сценарии была разница между заголовками и данными?
Я хочу, чтобы мой скрипт знал, что такое данные и что такое заголовки, потому что теперь он знает только, что первый запрос - это заголовки, но этот метод не так хорош, если соединение возобновляется.
Также, если егомульти-соединение, чтобы узнать, какие заголовки подключены к каким данным.
мой скрипт сейчас (на сервере):
import json
import requests
import signal
import sys
import socket
from _thread import *
UDP_IP = ""
UDP_PORT = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
s.bind((UDP_IP, UDP_PORT))
print("Wating for connections")
def data_iter():
while True:
getInfo = data, addr = s.recvfrom(10000000024)
print("My data:", data)
yield(data)
headers = None
while headers is None:
headers, addr = s.recvfrom(4024)
if headers is not None:
break
headers = headers.decode("utf-8")
headers = json.loads(headers)
try:
r = requests.post('http://10.0.0.1:5001/stream', headers=headers, data=data_iter())
except socket.error as error:
if error.errno == errno.EPIPE:
print(os.strerror(error.errno))
else:
raise
тип данных: заголовки - это тип json, преобразованный в байты:
заголовки: b'{"RECORDER_NAME": "USB Audio OnBoard: #1 (hw:0,1)", "LZMA": "1", "RECORDER_RATE": "44100"}'
Мои данные: b'nanannananananna'
# потому что я тестирую