2013-07-06 9 views
0

Я хочу написать байт (0-255) через сокет, но я не могу понять, как это сделать.Python записывает байты через сокет

socket.send(str(unichr(byte))) работает 0-128, а затем дает UnicodeEncodeError.

Есть ли все-таки написать байт над сокетом? Заранее спасибо.

+1

Не можете ли вы просто написать байт в сокет и закодировать его на строку на принимающей стороне? – Nadh

ответ

1

Используйте обычное определение.

socket.send('\xa5') 
socket.send('Hello, world!') 

или chr().

socket.send(chr(0xa5)) 
0

Это на самом деле не сокет, который дает ошибку это функция Обл:

>>> str(unichr(200)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc8' in position 0: ordinal not in range(128) 
>>> unicode(unichr(200)) 
u'\xc8' 

Попробуйте отправить, что вместо этого.

+0

Байты должны отправляться через сокет, а не текст. –

Смежные вопросы