1. DatagramSocket
- 用于接收与发送UDP的类
- 负责发送一个UDP包或接收UDP包
- 不同于TCP,UDP并没有合并到Socket API中(无服务器和客户端的区别)
- DatagramSocket() 创建简单实例,不指定端口和IP
- DatagramSocket(int port) 创建监听固定端口的实例(接收数据的端口)
- DatagramSocket(int port, InetAddress localAddr) 创建监听固定端口指定IP的实例(计算机存在多个IP地址时可以使用,只监听某一固定IP的数据)
- receive(DatagramPacket d) 接收UDP封装包
- send(DatagramPacket d) 发送UDP封装包
- sendSoTimeout(int timeout) 设置超时时间,毫秒
- close() 关闭,释放资源
2. DatagramPacket
- 用于处理报文
- 将byte数组、目标端口等数据包装成报文或将报文解析为byte数组
- 是DUP发送实体,也是接收实体
- DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 前3个参数指定buf的使用区间,后2个指定目标机器与端口(仅发送数据时指定,接收时计算机自动判别)
- DatagramPacket(byte[] buf, int length, SocketAddress address) SocketAddress相当于InetAddress+Port
- setData(byte[] buf, int offset, int length)
- setData(byte[] buf)
- setLength(int length)
- getData()、getOffset()、getLength()
- setAddress(InetAddress iadde)、setPort(int iport)
- getAddress()、getPort()
- setSocketAddress(SocketAddress address)
- getSocketAddress() 可无参构造,后使用以上函数进行赋值和取值操作