IP:
-------
import java.net.InetAddress;
import java.net.UnknownHostException;

public class MyInetAddressDemo1 {
    public static void main(String[] args) throws UnknownHostException {
        /*
        static inetaddress getByName(String host) 确定主机名称的IP地址。主机名称可以是机器名称,也可以是IP地址
        String getHostName() 获取此IP地址的主机名。
        string getHostAddress() 返回文本显示中的IP地址字符串。

         */
        InetAddress address=InetAddress.getByName("LAPTOP-BA8TSI01");
        System.out.println(address);

        String name = address.getHostName();
        System.out.println(name);

        String ip = address.getHostAddress();
        System.out.println(ip);
    }
}
---------------------------------------------------------
package a02;

import java.io.IOException;
import java.net.*;

public class SendMessageDemo1 {
    public static void main(String[] args) throws IOException {
        //发送数据


        //创建datagramsocket对象(快递公司)
        /*
        细节:绑定端口号,以后就从这个端口号发送数据
        空参:随机一个端口
        有参:指定端口号
         */
        DatagramSocket ds=new DatagramSocket();
        //打包数据
        String s="hahahaha";
        byte[] bytes=s.getBytes();
        InetAddress address=InetAddress.getByName("LAPTOP-BA8TSI01");
        int port=10086;
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length,address,port);
        //发送数据
        ds.send(dp);
        //关闭资源
        ds.close();
    }
}
-------------
package a02;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class ReceiveMessageDemo1 {
    public static void main(String[] args) throws IOException {
        //接受数据


        //1.创建datagramSocket对象(快递公司)
        //细节:
        /*
        接受数据的端口号必须与发送数据的端口号一致
         */
        DatagramSocket ds=new DatagramSocket(10086);

        //2.接收数据包
        byte[] bytes=new byte[1024];
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);

        ds.receive(dp);
        //3.解析数据包
        byte[] data=dp.getData();
        int length=dp.getLength();
        InetAddress address=dp.getAddress();
        int port=dp.getPort();

        System.out.println("接收到数据"+new String(data,0,length));
        System.out.println("该数据是从"+address+"的"+port+"端口号发送过来的");
        //4.关闭资源
        ds.close();
    }
}
--------------------------------------------------------
package a03;

import java.io.IOException;
import java.net.*;
import java.util.Scanner;

public class SendMessageDemo {
    public static void main(String[] args) throws IOException {
        //
         /*
         练习:
         udp发送消息:来自键盘录入的数据,直到886为止
         udp接收消息:由于不知道什么时候停止,所以采用死循环接收
          */

        //1.创建datagramsocket对象(快递公司)
        DatagramSocket ds=new DatagramSocket();

        //2.打包数据
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要发送的数据:");
            String str=sc.nextLine();
            if (str.endsWith("886")) {
                break;
            }
            byte[] bytes=str.getBytes();
            InetAddress address=InetAddress.getByName("LAPTOP-BA8TSI01");
            int port=10086;
            DatagramPacket dp=new DatagramPacket(bytes,bytes.length, address,port);
            //3.发送数据
            ds.send(dp);
        }
        //4.关闭资源
        ds.close();
    }
}
---------------
package a03;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class ReceiveMessageDemo {
    public static void main(String[] args) throws IOException {
        //接收数据

        //1.创建datagramsocket对象(快递公司)
        DatagramSocket ds=new DatagramSocket(10086);
        //2.创建数据包对象(用于接收数据)
        byte[] bytes=new byte[1024];
        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);

        while (true) {
            ds.receive(dp);
            //3.解析数据包,取出数据
            byte[] data=dp.getData();
            int length=dp.getLength();
            InetAddress address=dp.getAddress();
            int port=dp.getPort();

            System.out.println("接收到数据:"+new String(data,0,length));
            System.out.println("该数据是从"+address+"的"+port+"端口号发送过来的");
        }
    }
}
------------------------------------------------------------------