TCP字节数组不起作用,但Printwriter有效吗?

时间:2015-03-21 05:31:03

标签: java sockets tcp

目前我正在尝试在客户端与服务器之间进行通信,反之亦然。

截至目前,我尝试了以下

尝试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尝试发送字节数组并在服务器端接收它作为字符串?谢谢。

1 个答案:

答案 0 :(得分:1)

BufferedReader.readLine等待NewLine字符,您应该在尝试时将其添加到“test”1.尝试中的println 2自动添加