ServerSocket:使用ServerSocket创建服务器(指定服务器端口)
ServerSocket server = new ServerSocket(port);
Socket:客户端,使用Socket与服务器互连来接收和发送数据
Socket socket = new Socket(String host,int port); //Socket有两个方法 socket.getOutputStream(); //获取输出流 socket.getInputStream(); //获取输入流
基本流程
服务器端
1.指定端口 使用ServerSocket创建服务器
2.阻塞式等待连接 `ServerSocket.accept();`,当有客户端连接时,该方法返回一个Socket
3.通过`Socket`操作: 输入输出流操作
4.释放资源
客户端
1.建立连接: 使用Socket创建客户端 +服务的地址和端口
2.操作: 输入输出流操作
3.释放资源
1 //服务器端 2 public class Server { 3 public static void main(String[] args) throws Exception { 4 System.out.println("-----Server-----"); 5 // 1、指定端口 使用ServerSocket创建服务器 6 ServerSocket server =new ServerSocket(8888); 7 // 2、阻塞式等待连接 accept 8 Socket client =server.accept(); 9 System.out.println("一个客户端建立了连接"); 10 // 3、操作: 输入输出流操作 11 DataInputStream dis =new DataInputStream(client.getInputStream()); 12 String data =dis.readUTF(); 13 System.out.println(data); 14 // 4、释放资源 15 dis.close(); 16 client.close(); 17 server.close(); 18 } 19 } 20 21 //客户端 22 public class Client { 23 public static void main(String[] args) throws Exception { 24 System.out.println("-----Client-----"); 25 //1、建立连接: 使用Socket创建客户端 +服务的地址和端口 26 Socket client =new Socket("localhost",8888); 27 //2、操作: 输入输出流操作 28 DataOutputStream dos =new DataOutputStream(client.getOutputStream()); 29 String data ="hello"; 30 dos.writeUTF(data); 31 dos.flush(); 32 //3、释放资源 33 dos.close(); 34 client.close(); 35 } 36 } 37 38 //IO、Socket都实现了Closeable接口 39 //释放资源 40 public static void close(Closeable... targets) { 41 for(Closeable target:targets) { 42 try { 43 if(null!=target) { 44 target.close(); 45 } 46 }catch(Exception e) { 47 } 48 } 49 }