Двоичный протокол выбросить сокет в Python - PullRequest
0 голосов
/ 03 мая 2018

Я создаю сервер C ++, который получает данные от клиента в двоичном протоколе. протокол выглядит так:

Код сообщения: 1 БАЙТ | Длина данных: 4 байта | Данные: X BYTE

поэтому мне нужно отправить информацию от клиента, которая соответствует этому протоколу. так скажем, что я хочу отправить эти данные от клиента:

Код сообщения: 100 Длина данных: 4 Данные: приятно

Как я могу отправить в розетку? я имею в виду, что для длины данных требуется только 1 байт, но в протоколе я хочу, чтобы он был 4 байта постоянно. так как я могу завершить остальные 3 байта? и как я могу отправить данные бросить сокет, который не является строкой?

пока это мой код:

import socket
PORT, IP = 5280, '127.0.0.1'
SERVER_ADDRESS = (IP, PORT)

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(SERVER_ADDRESS)

code = 100
length = 14
data = "nice"

sock.sendall(code)
sock.sendall(length)
sock.sendall(data.encode("ASCII"))

print "Server said:", sock.recv(1024) # Server response
sock.close()

Я понятия не имею, как это сделать, как я хочу ... и как преобразовать все в двоичный файл. Небольшие исправления в моем коде помогут, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...