2015-03-21 2 views
1

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

Так как сейчас, я попытался с помощью следующей

Покушение 1) Попытка отправить через строку в ByteArray, форме.

Client

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, чтобы попытаться отправить массив байтов и получить его как строку на стороне сервера? Спасибо.

ответ

1

BufferedReader.readLine ждет символ перевода строки, вы должны добавить его в «тест» в попытке 1. Println в попытке 2 добавляет его автоматически

+0

Hm? Привет @Evgeniy Dorofeev Я сделал это в строке 2 попытки 1 Если я не ошибаюсь. – TechNewb

+0

должен быть новый String ("test \ n"). GetBytes(); –