Я создаю простое приложение Client-Server и сталкиваюсь с каким-то странным поведением при передаче сообщений через Socket: когда клиент пишет на сервер, сообщение передается правильно, однако, когда сервер отправляет ответ, в зависимости от того значение передается через сокет, кажется, чтобы получить дублируется ...Передача строки через значение Socket duplicates
Вот пример кода, что делает сервер:
.
.
.
public void respond(Socket socket)
{
try
{
InputStreamReader inStream = new InputStreamReader(socket.getInputStream());
PrintWriter outStream = new PrintWriter(
new OutputStreamWriter(socket.getOutputStream(), "UTF-16"));
outStream.write("Message received\n");
outStream.flush();
.
.
.
}
catch (Exception e) { /* Do something */ }
}
.
.
.
сервер и клиент в настоящее время работает на той же машине.
Кроме того, при записи с сервера на клиент не возникает проблемы при записи с сервера на сервер: если я укажу любую другую (или нет) кодировку, чем UTF-16 для OutputStreamWriter, клиент выиграл Невозможно правильно разобрать сообщение.
Есть ли у вас, ребята, идея, почему это может быть?
Я думаю, что вы допустили ошибку, вставляя свой код, taht не компилируется (дубликаты переменных). – Dici
Возможно, что ваш код на самом деле не скомпилирован и вместо этого выполняется на существующей компиляции, потому что у вас один и тот же блок кода там дважды, что приводит к ошибке повторяющейся переменной. – Zymus
Sry, это произошло при вставке, я его отредактировал, по-прежнему та же проблема – pablo