Я пытаюсь построить сервер SSL под Python 3.4. Суть в том, чтобы обмениваться данными и обмениваться данными с программой через определенный протокол, основанный на формате данных JSON.
Поэтому я использовал базовый c «эхо-сервер» и клиента в протоколе SSL и изменил их так, чтобы посмотрим, смогу ли я обмениваться данными. Это сработало, и отправка "привет" с одной стороны, как b "привет" с другой стороны, и это работает в обе стороны.
Я запускаю серверную часть, подключаю программу, она успешно общается, но: я ожидаю что-то вроде: LOGIN:n::{“user”:”XXXXX”, , ”password”:”YYYYY ”, app”:”ZZZZZ”, “app_ver”:”zzz”, ”protocol”:”xxx”,”protocol_ver”:”xxxx”}
приходит от клиента (программы)
Но вместо этого я получаю что-то вроде этого b"\x16\x03\x03\x00\x8e\x01\x00\x00\x8a\x03\x03^\x9e\xeb\xd8\x8f\xd9 \x05v\xbbF:}\xda\x17\xf7\x13\xff\xa9\xde=5\xfb_\xbco\x16\x96EL#\x00\x00*\xc0,\xc0+\xc00\xc0/\x00\x9f\x00\x9e\xc0$\xc0#\xc0(\xc0'\xc0\n\xc0\t\xc0\x14\xc0\x13\x00\x9d\x00\x9c\x00=\x00<\x005\x00/\x00\n\x01\x00\x007\x00\n\x00\x08\x00\x06\x00\x1d\x00\x17\x00\x18\x00\x0b\x00\x02\x01\x00\x00\r\x00\x14\x00\x12\x06\x01\x06\x03\x04\x01\x05\x01\x02\x01\x04\x03\x05\x03\x02\x03\x02\x02\x00#\x00\x00\x00\x17\x00\x00\xff\x01\x00\x01\x00"
Я думал, что это просто закодировано, но я попробовал bytemessage.decode()
метод с utf-8, cp437, cp1250, cp1252, латиница-1 и др. c. Я также попытался codecs.decode () с шестнадцатеричным. Безуспешно, я не понимаю, что это за язык.
Я новичок в SSL, поэтому я полагаю, что мне здесь не хватает чего-то очевидного, но я понятия не имею, что ...
Любая помощь будет с благодарностью.
Заранее спасибо!
---- Редактируйте здесь код моего сервера -----
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 5000)
print ('starting up on %s port %s' % server_address)
sock.bind(server_address)
sock.listen(1)
while True:
print ( 'waiting for a connection')
connection, client_address = sock.accept();
try:
print( 'connection from', client_address)
while True:
data = connection.recv(16)
print ( 'received "%s"' % data)
if True:
#data2=b'{"timing":{"liveEvents": {"sector": {"dayTime": 1483523892618,"driver": 1,"isValid": false,"participant": "0","sector": 3,"time": -1}}}}'
print ('sending data to the client')
#connection.sendall(data2)
else:
print ( 'no more data from', client_address)
break
finally:
connection.close()