一个 Java 的 Socket 服务器和客户端通信的例子

时间:2024-11-10 11:34:27
  • package ;  
  •   
  • import ;  
  • import ;  
  • import ;  
  • import ;  
  • import ;  
  • import ;  
  •   
  • public class Server {  
  •     public static final int PORT = 12345;//监听的端口号     
  •       
  •     public static void main(String[] args) {    
  •         ("服务器启动...\n");    
  •         Server server = new Server();    
  •         ();    
  •     }    
  •     
  •     public void init() {    
  •         try {    
  •             ServerSocket serverSocket = new ServerSocket(PORT);    
  •             while (true) {    
  •                 // 一旦有堵塞, 则表示服务器与客户端获得了连接    
  •                 Socket client = ();    
  •                 // 处理这次连接    
  •                 new HandlerThread(client);    
  •             }    
  •         } catch (Exception e) {    
  •             ("服务器异常: " + ());    
  •         }    
  •     }    
  •     
  •     private class HandlerThread implements Runnable {    
  •         private Socket socket;    
  •         public HandlerThread(Socket client) {    
  •             socket = client;    
  •             new Thread(this).start();    
  •         }    
  •     
  •         public void run() {    
  •             try {    
  •                 // 读取客户端数据    
  •                 DataInputStream input = new DataInputStream(());  
  •                 String clientInputStr = ();//这里要注意和客户端输出流的写方法对应,否则会抛 EOFException  
  •                 // 处理客户端数据    
  •                 ("客户端发过来的内容:" + clientInputStr);    
  •     
  •                 // 向客户端回复信息    
  •                 DataOutputStream out = new DataOutputStream(());    
  •                 ("请输入:\t");    
  •                 // 发送键盘输入的一行    
  •                 String s = new BufferedReader(new InputStreamReader()).readLine();    
  •                 (s);    
  •                   
  •                 ();    
  •                 ();    
  •             } catch (Exception e) {    
  •                 ("服务器 run 异常: " + ());    
  •             } finally {    
  •                 if (socket != null) {    
  •                     try {    
  •                         ();    
  •                     } catch (Exception e) {    
  •                         socket = null;    
  •                         ("服务端 finally 异常:" + ());    
  •                     }    
  •                 }    
  •             }   
  •         }    
  •     }    
  • }    
  • 相关文章