有两种类型
IP的分类 (ABCD类)

生活例子:打电话
特性 :连接 稳定
流程
代码例子
class A{
    public static void main(String[] args){
        //创建socket连接 参数为 ip 和 port
        Socket socket = new Socket(InetAddress.getByName("0.0.0.0"),port);
        //socket连接成功不报错,可以获取输出流回应服务端
        OutputStream os = socket.getOutputStream();
        //写入数据
        os.write("hello world".getBytes());
        //结束输出
        socket.shutdownOutput();
        //后续结束连接关闭服务
        os.close();
        socket.close();
    }
}
class b{
    public static void main(String[] args){
        //创建服务器的socket 并开放其端口号
        ServerSocket socket = new ServerSocket(port);
        //通过服务器的socket监听发过来的连接请求 (阻塞连接)
        Socket accept = socket.accept();
        //连接成功接收客户端发来的数据
        InputStream is = accept.getInputStream();
        //I/O读写数据
        byte[] buffer = new byte[1024];
        int len = 0;
        //因不知道数据类型,用管道流接收
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
        while((len=is.read(buffer))!= -1){
            baos.write(buffer,0,len);
        }
        System.out.print(baos.toString());
    }
}
生活例子:发短信
特性:不稳定 单方面
流程:
代码例子
class A{
    public static void main(String[] args){
        //创建DatagramSocket进行发送
        DatagramSocket socket = new DatagramSocket();
        //发送需要的内容 参数需要 数据字节数组 数组偏移量 数组长度 IP 端口
        byte[] buffer = "hello world".getBytes();
        DatagramPacket packet = new 			 DatamgramPacket(buffer,0,buffer.length,InetAddress.getByName("0.0.0.0"),port);
        //发送
        socket.send(packet);
    }
}
class B{
    public static void main(String[] args){
        //创建DatagramSocket连接 ,并开放其端口
        DatagramSocket socket = new DatagramSocket(port);
        //需要接收内容的驿站
        byte[] buffer = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buffer,0,buffer.length);
        //接收
        socket.receive(packet);
        //输出其信息
        byte[] data = packet.getData();
        System.out.print(new String(data,0,data.length))
    }
}
//如:利用url下载网上的资源
Url url = new Url(定位的格式);
//调用url的连接方法获取输入流
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
InputStream fis = connection.getInputStream();
//利用IO输出即可
原文:https://www.cnblogs.com/MoonPiePlane/p/15018305.html