Java客户端与服务器的通信

 实现简单的服务器程序

  1. package Socket;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.io.OutputStream;  
  6. import java.io.PrintWriter;  
  7. import java.net.ServerSocket;  
  8. import java.net.Socket;  
  9. import java.util.Scanner;  
  10.   
  11. public class EchoServer {  
  12.   
  13.     public static void main(String[] args) {  
  14.         try {  
  15.             //建立服务器端Socket,监听8189端口  
  16.             ServerSocket s = new ServerSocket(8189);  
  17.             //等待客户端的访问  
  18.             Socket incoming = s.accept();  
  19.             try{  
  20.                 //从“客户端”Socket对象读字节流  
  21.                 InputStream inStream = incoming.getInputStream();  
  22.                 //向“客户端”Socket对象写字节流  
  23.                 OutputStream outStream = incoming.getOutputStream();  
  24.                 //将读出来的数据封装成Scanner对象  
  25.                 Scanner in = new Scanner(inStream);  
  26.                 //封装输出流  
  27.                 PrintWriter out = new PrintWriter(outStream,true);  
  28.                                        
  29.                 //接收到客户端的请求,输出"Hello! Enter Bye to exit."                 
  30.                 out.println("Hello! Enter BYE to exit.");  
  31.                   
  32.                //解析客户端的输入,然后做出回应  
  33.                 boolean done = false;  
  34.                 while(!done&&in.hasNext())  
  35.                 {  
  36.                     String line = in.nextLine();  
  37.                     out.println("Echo:"+line);  
  38.                     if(line.trim().equals("BYE")) done=true;  
  39.                 }  
  40.             }  
  41.             finally{  
  42.                 //关闭客户端的Socket  
  43.                 incoming.close();  
  44.             }  
  45.         } catch (IOException e) {  
  46.             e.printStackTrace();  
  47.         }  
  48.     }  
  49. }  

然后在cmd下 使用telnet 127.0.0.1 8189 进行测试。

1.ServerSocket(int port)

创建一个监控端口的服务器Socket

2.Socket accept() 等待连接。

该方法阻塞当前线程直到建立连接为止。该方法返回一个Socket对象。程序可以通过这个对象与连接中的客户端进行通信。

3.void close()

关闭服务器套接字

原文地址:https://www.cnblogs.com/dhm520/p/8604083.html