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 会自动添加它
目前我正在尝试在 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 会自动添加它