2015-08-13 14 views
0

我有一个问题,从我实现的代码中获取输出,以创建服务器/客户端程序...这只是一个非常简单的,我不喜欢不知道为什么我没有得到我想要的东西。Java中的客户端/服务器程序 - 流

这里是服务器的代码:

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"); 

我试图让你好,服务器输出,相反,我刚刚得到的“连接” syso客户端(我只是想知道它是否工作)

回答

0

一旦你写了流,你必须通过在输出流上调用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(); 
+0

非常感谢Shriram! – MichaelJava