Форум сайта python.su
для передачи данных по TCP, мне надо составить пакет данных:
уникальный идентификатор + длина сообщения + текстовое сообщение.
уникальный идентификатор должен занимать 4 байта
длина сообщения - это int число, под которое выделено 4 байта
текст - это просто строка
т.е. если есть int число, то его можно конвертнуть, например с помощью hex(), тогда число будет записываться как-то так: 0x9f1
хотелось бы из этой записи выбрать “9f1”, и дополнить недостающий байт нулём.
отправлять результат буду, видимо, через socket.send()
(он, кажется, только строки отправляет?)
какие модули стоит посмотреть? может быть, ссылки посоветуете по теме?
Отредактировано (Ноя. 24, 2008 12:49:20)
Офлайн
модуль struct?
Офлайн
axe>>> ‘%04x’ % 0x9f1
т.е. если есть int число, то его можно конвертнуть, например с помощью hex(), тогда число будет записываться как-то так: 0x9f1
хотелось бы из этой записи выбрать “9f1”, и дополнить недостающий байт нулём.
Отредактировано (Ноя. 24, 2008 13:14:15)
Офлайн
axeнет. Он отправляет поток байт.
(он, кажется, только строки отправляет?)
Офлайн
struct.
ice, нечего человеку голову морочить.
Офлайн
да я и не пытаюсь морочить. надо строку отправить, так не проще ли строку и отправить. и проблемы Big/LittleEndian не будет. И отлаживать проще будет.
Офлайн
Да не вроде никаких проблем с big/littleEndian :)
наоборот, когда ты знаешь и уверен в том, что у тебя четкая структура, это есть хорошо :) да и по размеру.. В 4 байтах можно будет сохранить большее число, чем в строке в hex, размером в 4 байта
Офлайн
посмотрел, struct - действительно то, что нужно. спасибо.
использую как раз то, что в 4 байта можно упаковать большое число
Офлайн