Java对UDP网络编程技术讲解.pdf
Java对UDP网络编程技术讲解--第1页
Java对UDP网络编程技术讲解
UDP(UserDatagramProtocol)是一种无连接的、不可靠的数
据传输协议,与TCP(TransmissionControlProtocol)相比,UDP
不提供数据传输的可靠性检查和流控制,但传输速度更快,对于
一些对数据传输实时性要求高的应用场景来说,UDP具备很大的
优势。
在Java中,实现UDP网络编程比较简单,只需要使用Java提
供的DatagramSocket和DatagramPacket类即可。
1.DatagramSocket类
DatagramSocket类为UDP协议提供了套接字接口,通过该类创
建DatagramSocket实例对象,可以与指定端口号和IP地址的计算
机进行通讯。
DatagramSocket类提供了如下两种构造方法用于创建
DatagramSocket实例对象:
(1)publicDatagramSocket(intport)throwsSocketException
Java对UDP网络编程技术讲解--第1页
Java对UDP网络编程技术讲解--第2页
在本地主机上创建DatagramSocket实例对象并绑定到指定的端
口号port,如果port为0则系统会自动分配一个空闲的端口号。
(2)publicDatagramSocket(intport,InetAddressaddress)throws
SocketException
创建DatagramSocket实例对象并绑定到指定的IP地址和端口
号,其中IP地址通过一个InetAddress类型的参数传递。
除了创建DatagramSocket实例对象之外,DatagramSocket类还
有一些其他常用的方法,比如:
(1)publicvoidsend(DatagramPacketpacket)throws
IOException
向远程计算机发送数据包,数据包为一个DatagramPacket类型
的对象。
Java对UDP网络编程技术讲解--第2页
Java对UDP网络编程技术讲解--第3页
(2)publicvoidreceive(DatagramPacketpacket)throws
IOException
从远程计算机接收数据包,数据包为一个DatagramPacket类型
的对象。
(3)publicvoidsetSoTimeout(inttimeout)throws
SocketException
设置超时时间,单位为毫秒,如果在超时时间内没有接收到数
据包,则抛出SocketTimeoutException异常。
2.DatagramPacket类
DatagramPacket类为UDP协议提供了数据包的封装和解封装,
通过该类可以将数据转换为数据包进行传输。
DatagramPacket类有如下两种构造方法用于创建数据包:
Java对UDP网络编程技术讲解--第3页
Java对UDP网络编程技术讲解--第4页
(1)publicDatagramPacket(byte[]buf,intlength,InetAddress
address,intport)
创建一个数据包,将buf数组中从0开始的length个字节封装
为数据包,该数据包将被发送到指定IP地址和端