Я создаю соккет, подключаюсь к серверу, принимаю данные в список, потом конвертирую список в строку. Далее формирую строку хедера для файла, после чего приклеиваю строку хедера к строке данных и записываю всё это в файл и наблюдаю такую картину: хедер находится в начале файла, но не в виде байтов, а как текст… То есть хедер выглядит так: 0xbad4feed0x125e773c1120x7d170x400 и он просто текстом написан в начале бинарника…
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import socket import time sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('192.168.1.58', 32023)) y = 0 buffr = 0 data = [] while y < 65536: buffr = sock.recv(1024) x = sys.getsizeof(buffr) y = x + y data.append(buffr) current_milli_time = lambda: int(round(time.time() * 1000)) pre_head = ''.join(hex(0xBAD4FEED) + hex(current_milli_time()) + hex(32023) + hex(1024)) pre_data = ''.join(data) head = pre_head.replace('L','') head = head.encode("utf-8") flush = head + pre_data my_file = open("tcp.slf", 'ab') my_file.write(flush) my_file.close() sock.close()
Буду благодарен за науку )