Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2013 03:58:36

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Бинарное число

Привет форумчане.
Есть задача.
Отправить в сокет бинарное число - 01
Я отправляю так:

s = bytes(01)
conn.send(s)

Но модуль мне ничего не отвечает.
Подскажите, в каком формате нужно отравить число, может перекодирвоать нужно во что-то.
В задаче строго на строго написанно: should be sent as binary packet

Офлайн

#2 Июнь 1, 2013 09:21:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9857
Репутация: +  853  -
Профиль   Отправить e-mail  

Бинарное число

conn.send(b'\x01')



Офлайн

#3 Июнь 1, 2013 19:45:36

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Бинарное число

Спасибо, сработало.

Офлайн

#4 Июнь 1, 2013 23:35:47

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Бинарное число

Можете еще подсказать
Я получаю данные в виде:

?k??q??!(?@?	?bh?q?`!(?????U?q??!(??J>?h\0q?@!(???$>?^??q??!(?@?	>?U??q??!(?@?	>?L?Hq??!(?@?	>?CZq??!(?@?	>?:0q??!(?@?
                                                    >?1?q??!(?@?
>?'?
q??!(?@?
>??lq??!(?@?	>???q??!(?@?	>?
                                  Z?q??!(?@?
                                            >?1q??!(?@?	>??0q??!(?@?
                                                                    >??ݐq??!(?@?
>??hq??!(?@?	>?ދ?q??!(?@?	>??b?q?`!(?@.>?P4vq?`!(???>?G	q?`!(???>?=??q?`!(???>?4??q?`!(???>?+??q?`!(????
А должно быть что-то вроде:
080400000113fc208dff000f14f650209cca80006f00d6040004000403010115031603000
1460000015d0000000113fc17610b000f14ffe0209cc580006e00c0050001000403010115
0316010001460000015e0000000113fc284945000f150f00209cd20000950108040000000
4030101150016030001460000015d0000000113fc267c5b000f150a50209cccc000930068
0400000004030101150016030001460000015b0004 

Подскажите, как мне перевести данные в этот вид?
Использование decode не помогло
print data.decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf1 in position 7: ordinal not in range(128)

Офлайн

#5 Июнь 2, 2013 02:36:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9857
Репутация: +  853  -
Профиль   Отправить e-mail  

Бинарное число

>>> data = b'\x01\x02\x03\xffa'
>>> print data
a
>>> print ''.join(map('{:02x}'.format, bytearray(data)))
010203ff61
>>>

>>> data.encode('hex')
'010203ff61'
>>>



Отредактировано py.user.next (Июнь 2, 2013 02:39:53)

Офлайн

#6 Июнь 3, 2013 07:49:29

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Бинарное число

from binascii import hexlify
data = b'\x01\x02\x03\xffa'
print(hexlify(data).decode())



Офлайн

#7 Июнь 4, 2013 18:36:59

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Бинарное число

Спасибо большое за советы, подскажите, чего можно прочесть, чтобы раз и навсегда вкурить эту тему или стоит углубится в азы информатики?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version