2012-05-16 2 views
1

Я пишу сервер сокета в python. Он должен отправить подтверждение на клиентский модуль. Цитата из описания протокола:эквивалент python этого короткого кода Java

«[...] сервер должен определить, если она будет принимать данные из этого модуля Если да сервер будет отвечать на модуль 01, если не 00.»

Я реализовал это в Python как:

connection.send('01') 

Это не работает, поэтому я проверил выполнение Java-сервера:

 byte[] answer = { 
      0x01}; 
     out.write(answer); 
     out.flush(); 

Интересно, является ли это то же самое или не? System.out.write (ответ); похоже, ничего не выводит на консоль.

ответ

5

Вы отправляете два байта, 0x30, за которыми следует 0x31, тогда как код Java отправляет только один байт, 0x01.

Попробуйте следующие вместо:

connection.send('\x01') 

В случае, если вам интересно, где 0x30 и 0x31 пришли, они ASCII коды символов '0' и '1'.

+0

'connection.send ('\ x01')' может быть? – ulidtko

+0

@ulidtko: То же самое (два точно эквивалентны). – NPE

+0

вот оно, спасибо! –

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