JavaSE-21.3.2【TCP通信程序练习1】
1 package day12.lesson3.p1; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.net.Socket; 7 8 /* 9 3.3 TCP通信程序练习1 10 案例需求 11 客户端:发送数据,接受服务器反馈 12 服务器:收到消息后给出反馈 13 案例分析 14 客户端创建对象,使用输出流输出数据 15 服务端创建对象,使用输入流接受数据 16 服务端使用输出流给出反馈数据 17 客户端使用输入流接受反馈数据 18 */ 19 public class ClientDemo { 20 public static void main(String[] args) throws IOException { 21 Socket socket = new Socket("MSI-YUBABY", 10000); 22 23 OutputStream os = socket.getOutputStream(); 24 os.write("hello, tcp".getBytes()); 25 26 InputStream is = socket.getInputStream(); 27 byte[] bytes = new byte[1024]; 28 int len = is.read(bytes); //接收服务器端的反馈信息 29 String data = new String(bytes, 0, len); 30 System.out.println("客户端:" + data); 31 32 /*is.close(); 33 os.close(); 34 socket.close();*/ 35 //这样写没有问题,但没有必要写is和os,因为is和os都是根据socket对象得到的,socket释放则依附于socket的其他也都释放了 36 socket.close(); 37 } 38 }
1 package day12.lesson3.p1; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 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 ServerSocket ss = new ServerSocket(10000); 12 13 Socket socket = ss.accept(); 14 15 InputStream is = socket.getInputStream(); 16 byte[] bytes = new byte[1024]; 17 int len = is.read(bytes); //接收客户端发来的数据 18 String data = new String(bytes, 0, len); 19 System.out.println("服务器端:" + data); 20 21 OutputStream os = socket.getOutputStream(); 22 os.write("数据已收到".getBytes()); //给出反馈信息 23 24 ss.close(); 25 } 26 }