Socket 好像能理解成 ip 地址和端口号;

    服务端

    • 服务器建立通信ServerSocket
    • 服务器建立Socket接收客户端连接
    • 建立IO输入流读取客户端发送的数据
    • 建立IO输出流向客户端发送数据消息 ```java package Socket;

    import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;

    public class Server { public static void main(String[] args) { try{ //打开8888端口 ServerSocket ss = new ServerSocket(8888);

    1. //在8888上监听请求
    2. System.out.println("监听端口号8888");
    3. Socket s = ss.accept();
    4. //打开输入流
    5. InputStream is = s.getInputStream();
    6. //把输入流封装在DataInputStream里
    7. DataInputStream dis = new DataInputStream(is);
    8. //用readUTF读取字符串
    9. String msg = dis.readUTF();
    10. System.out.println(msg);
    11. dis.close();
    12. s.close();
    13. ss.close();
    14. }catch(IOException e){
    15. e.printStackTrace();
    16. }
    17. }

    }

    客户端
    
    - 创建Socket通信,设置通信服务器的IP和Port
    - 建立IO输出流向服务器发送数据消息
    - 建立IO输入流读取服务器发送来的数据消息
    ```java
    package Socket;
    
    import java.io.DataOutput;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
    
    public class Client {
        public static void main(String[] args) {
            try{
                Socket s = new Socket("127.0.0.1", 8888);
                //打开输出流
                OutputStream os = s.getOutputStream();
                //把输出流封装在DataOutputStream中
                DataOutputStream dos = new DataOutputStream(os);
    
                Scanner sc = new Scanner(System.in);
                String str = sc.next();
    
                dos.writeUTF(str);
    
                dos.writeUTF("hello this is from client");
                dos.close();
                s.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }