Client/Server Java 中的程序 - 流
Client/Server Program in Java - Streams
我在从我为创建 server/client 程序而实现的代码中获取我想要的输出时遇到问题...这只是一个非常简单的问题,我不知道为什么我没有得到我想要的。
服务器代码如下:
ServerSocket serverSocket = new ServerSocket(1025);
System.out.println("Porting...");
Socket socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String s = in.readLine();
System.out.println("Server read: " + s);
out.write("Got it");
socket.close();
System.out.println("Server Exit");
客户:
System.out.print("Connecting...");
Socket socket = new Socket("localhost",1025);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.write("Hello, Server");
String s = in.readLine();
System.out.println("Client Recieved: " + s);
socket.close();
System.out.println("Client Exit");
我尝试获取 Hello, Server 输出,而我只是从客户端获取 "connecting" syso(我这样做是为了看看它是否有效)
在流上写入后,您必须通过在输出流上调用 flush() 方法来刷新流。否则,一旦流缓冲区已满,流将被刷新。
out.flush();
此外,您还必须确保输入换行符以提及行尾。因为 readLine() 用 newline() 等待字符串。
A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r')
out.write("Hello, Server\n");
out.flush();
我在从我为创建 server/client 程序而实现的代码中获取我想要的输出时遇到问题...这只是一个非常简单的问题,我不知道为什么我没有得到我想要的。
服务器代码如下:
ServerSocket serverSocket = new ServerSocket(1025);
System.out.println("Porting...");
Socket socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String s = in.readLine();
System.out.println("Server read: " + s);
out.write("Got it");
socket.close();
System.out.println("Server Exit");
客户:
System.out.print("Connecting...");
Socket socket = new Socket("localhost",1025);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.write("Hello, Server");
String s = in.readLine();
System.out.println("Client Recieved: " + s);
socket.close();
System.out.println("Client Exit");
我尝试获取 Hello, Server 输出,而我只是从客户端获取 "connecting" syso(我这样做是为了看看它是否有效)
在流上写入后,您必须通过在输出流上调用 flush() 方法来刷新流。否则,一旦流缓冲区已满,流将被刷新。
out.flush();
此外,您还必须确保输入换行符以提及行尾。因为 readLine() 用 newline() 等待字符串。
A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r')
out.write("Hello, Server\n");
out.flush();