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 }
运行效果,先开服务器端,如下:
再开客户端,如下:
回到服务器,如下: