获取ip地址
InetAddress类成员方法
* static InetAddress getLocalHost()
* 获得本地主机IP地址对象
* static InetAddress getByName(String host)
* 根据IP地址字符串或主机名获得对应的IP地址对象
* String getHostName();获得主机名
* String getHostAddress();获得IP地址字符
public class InetAddressDemo { public static void main(String[] args) throws UnknownHostException { InetAddress byName = InetAddress.getByName("DESKTOP-SDL9NNV"); System.out.println(byName); // DESKTOP-SDL9NNV/192.168.3.26 InetAddress byName1 = InetAddress.getByName("192.168.3.26"); System.out.println(byName1); // /192.168.3.26 String s1 = byName.getHostName(); System.out.println(s1);//DESKTOP-SDL9NNV String s2 = byName.getHostAddress(); System.out.println(s2);//192.168.3.26 } }
UDP协议的特点
* 面向无连接的协议
* 发送端只管发送,不确认对方是否能收到。
* 基于数据包进行数据传输。
* 发送数据的大小限制64K以内
* 因为面向无连接,速度快,但是不可靠。
UDP协议的使用场景
* 即时通讯
* 在线视频
* 网络语音电话
UDP协议相关的两个类
* DatagramPacket
* 数据包对象
* 作用:用来封装要发送或要接收的数据,比如:集装箱
* DategramSocket
* 发送对象
* 作用:用来发送或接收数据包,比如:码头
DatagramPacket类构造方法
* DatagramPacket(byte[] buf, int length, InetAddress address, int port)
* 创建发送端数据包对象
* buf:要发送的内容,字节数组
* length:要发送内容的长度,单位是字节
* address:接收端的IP地址对象
* port:接收端的端口号
* DatagramPacket(byte[] buf, int length)
* 创建接收端的数据包对象
* buf:用来存储接收到内容
* length:能够接收内容的长度
DatagramPacket类常用方法
* int getLength() 获得实际接收到的字节个数
DatagramSocket类构造方法
* DatagramSocket() 创建发送端的Socket对象,系统会随机分配一个端口号。
* DatagramSocket(int port) 创建接收端的Socket对象并指定端口号
DatagramSocket类成员方法
* void send(DatagramPacket dp) 发送数据包
* void receive(DatagramPacket p) 接收数据包