В настоящее время я пытаюсь установить связь между 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, чтобы попытаться отправить массив байтов и получить его как строку на стороне сервера? Спасибо.
BufferedReader.readLine ждет символ NewLine, вы должны добавить его в "test" в попытке 1. println в попытке 2 автоматически добавляет его