TCP Byte Array 不工作,但 Printer Writer 工作?

TCP Bytearray doesnt work, but Printerwriter works?

目前我正在尝试在 Java 中从客户端到服务器进行通信,反之亦然。

到目前为止,我尝试了以下

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

BufferedReader.readLine 等待换行符,您应该在尝试 1 中将其添加到 "test"。尝试 2 中的 println 会自动添加它