TCP Bytearray не работает, но Printerwriter работает?

1

В настоящее время я пытаюсь установить связь между Client to Server и наоборот на Java.

Итак, на данный момент я пробовал следующее

Попытка 1) Попытка отправить строку в форме bytearray.

клиент

OutputStream os = clientSock.getOutputStream();
byte[] sndMsg = new String("test").getBytes();
os.write(sndMsg);
os.flush();

сервер

InputStream is = serverChild.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

String rcvRequest = br.readLine();
System.out.println(rcvRequest);

Видимо, когда он не распечатывает тест.

Попытка 2) Однако, когда я меняю код со стороны клиента на

PrintWriter out = new PrintWriter(new OutputStreamWriter(clientSock.getOutputStream()));
out.println("test");
out.flush();

Оно работает. Почему это так? Я могу использовать попытку 1, чтобы попытаться отправить массив байтов и получить его как строку на стороне сервера? Спасибо.

Теги:
sockets
tcp

1 ответ

1
Лучший ответ

BufferedReader.readLine ждет символ NewLine, вы должны добавить его в "test" в попытке 1. println в попытке 2 автоматически добавляет его

  • 0
    Хм? Привет @ Евгений Дорофеев Я сделал это в строке 2 попытки 1 Если я не ошибаюсь.
  • 0
    это должна быть новая строка ("test \ n"). getBytes ();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню