Я написал TCP-сервер в node.js, реализующий двоичный протокол.
Используя буферы, это было очень легко в node.js.
http://nodejs.org/docs/v0.5.3/api/buffers.html
Я ищу аналогичный способ реализации моего протокола в Python 2.7 с использованием витой.
Однако, если есть лучший инструмент для работы, сочетающий Python 3 и какой-то четный ввод / вывод, пожалуйста, дайте мне знать. Из-за объекта байтов в Python 3, на первый взгляд кажется, что Python 3 лучше обрабатывает двоичные протоколы. Мне нужно обработать много TCP (и UDP) соединений и написать немного GUI.
Вот как реализовать мой протокол в node.js:
var buf = new Buffer(5+data.length), //headers + data (data is also a buffer)
action = 0x01;
buf[0] = action;
buf.writeUInt16(data.length,1,'big'); //write content length in at offset 1
buf.writeUint16(12345,5,'big'); //message identifier at offset 3
data.copy(buf,5); //copy data into message at offset 5
socket.write(buf);
Буду признателен за примеры того, как выполнить аналогичные инструкции в python.
Редактировать: так я смог реализовать свой протокол с помощью модуля структуры python:
self.transport.write(struct.pack('!bHH',action,data.length, sock_id) + data)