Отправка строки из клиента Java на сервер Python - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь отправить простую строку с клиента Java на сервер Python .

Вот реализация клиента Java :

Socket socket = new Socket(addr, PORT_NUMBER);
String message = "Hello##2##you\n"
PrintWriter outPrintWriter = new PrintWriter(socket.getOutputStream(),true);
outPrintWriter.println(answerToString);

Вот реализация Python-сервера :

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.settimeout(TIMEOUT)
s.bind(('', PORT_NUMBER))
s.listen(5)
conn, addr = s.accept()
data = conn.recv(4096)
print(data.decode())
strings_received = data.split("##")

Но при декодировании я получаю следующую ошибку:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 0: invalid start byte

Я прочитал, что Java по умолчаниюкодирование сообщений в utf-16, поэтому я попытался:

print(data.decode('utf-16'))

Но это не решило проблему, так как я получаю в выводе следующее: "Ԁ".

Более того, когда яперейти к следующей строке я получаю следующую ошибку:

TypeError: a bytes-like object is required, not 'str'

Как правильно отправить строку из Java в Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...