1. 客户端:
1 package cn.itcast_08; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.OutputStreamWriter; 8 import java.net.Socket; 9 10 /* 11 * 客户端键盘录入,服务器输出到控制台 12 */ 13 public class ClientDemo { 14 public static void main(String[] args) throws IOException { 15 // 创建客户端Socket对象 16 Socket s = new Socket("192.168.12.92", 22222); 17 18 // 键盘录入数据 19 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 20 // 把通道内的流给包装一下 21 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( 22 s.getOutputStream())); 23 24 String line = null; 25 while ((line = br.readLine()) != null) { 26 // 键盘录入数据要自定义结束标记 27 if ("886".equals(line)) { 28 break; 29 } 30 bw.write(line); 31 bw.newLine(); 32 bw.flush(); 33 } 34 35 // 释放资源 36 // bw.close(); 37 // br.close(); 38 s.close(); 39 } 40 }
2. 服务器端:
1 package cn.itcast_08; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.net.ServerSocket; 7 import java.net.Socket; 8 9 public class ServerDemo { 10 public static void main(String[] args) throws IOException { 11 // 创建服务器Socket对象 12 ServerSocket ss = new ServerSocket(22222); 13 14 // 监听客户端连接 15 Socket s = ss.accept(); 16 17 // 包装通道内容的流 18 BufferedReader br = new BufferedReader(new InputStreamReader( 19 s.getInputStream())); 20 String line = null; 21 while ((line = br.readLine()) != null) { 22 System.out.println(line); 23 } 24 25 // br.close(); 26 s.close(); 27 // ss.close(); 28 } 29 }
运行效果,先开服务器端,如下:
再开客户端,如下:
回到服务器,如下: