目前我正在尝试在客户端与服务器之间进行通信,反之亦然。
截至目前,我尝试了以下
尝试1)尝试以字节数组的形式发送字符串。
客户端
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尝试发送字节数组并在服务器端接收它作为字符串?谢谢。
答案 0 :(得分:1)
BufferedReader.readLine等待NewLine字符,您应该在尝试时将其添加到“test”1.尝试中的println 2自动添加