1 /* 2 客户端流程: 3 1.创建客户端socket服务对象,明确连接到哪个主机; 4 2.将数据写到socket对象的输出流中; 5 3.获取服务端发送回来的socket对象输入流; 6 4.关闭服务 7 */ 8 import java.net.*; 9 import java.io.*; 10 class TCPSend3 11 { 12 public static void main(String[]args) throws Exception 13 { 14 //创建客户端socket服务对象,与此同时需要明确连接到哪个主机服务端 15 Socket socketSend=new Socket(InetAddress.getByName("127.0.0.1"),10003); 16 //将数据写到socket对象的输出流中 17 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socketSend.getOutputStream())); 18 //String data="服务端你好,俺是客户端"; 19 //bw.write(data,0,data.length()); 20 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 21 String data; 22 while((data=br.readLine())!=null) 23 { 24 bw.write(data); 25 bw.newLine();//服务端要读到换行符才能打印,因为readLine方法读到换行符才停止一行数据的读取 26 bw.flush();//别忘了这一步,否则服务端收不到数据,为NULL 27 } 28 //关闭服务 29 socketSend.close(); 30 } 31 } 32 33 /* 34 1.创建服务端socket服务对象,明确监听的端口号 35 2.获取服务端连接过来的socket对象 36 3.获取客户端发过来的数据(存放在输入流中) 37 4.关闭服务 38 */ 39 class TCPReceive3 40 { 41 public static void main(String[]args) throws Exception 42 { 43 //1.创建服务端socket服务对象,明确监听的端口号 44 ServerSocket socketReceive=new ServerSocket(10003); 45 //2.获取服务端连接过来的socket对象 46 Socket socketSend=socketReceive.accept(); 47 //3.获取客户端发过来的数据,就是获取客户端socket对象的输入流 48 BufferedReader br = new BufferedReader(new InputStreamReader(socketSend.getInputStream())); 49 String data; 50 while((data=br.readLine())!=null) 51 { 52 System.out.println(data); 53 } 54 //4.关闭服务 55 socketSend.close();//同时关闭连接过来的客户端socket 56 socketReceive.close(); 57 } 58 }
时间: 2024-11-10 01:33:21