- java.lang.Object
-
- java.net.DatagramPacket
-
public final class DatagramPacket extends Object
该类表示数据报包。数据报分组用于实现无连接分组传递服务。 每个消息仅根据该数据包中包含的信息从一台机器路由到另一台机器。 从一台机器发送到另一台机器的多个数据包可能会以不同方式路由,并且可能以任何顺序到达。 无法保证数据包传输。
- 从以下版本开始:
- 1.0
-
-
构造方法摘要
构造方法 构造器 描述 DatagramPacket(byte[] buf, int length)
构造DatagramPacket
用于接收长度为length
数据包。DatagramPacket(byte[] buf, int offset, int length)
构造DatagramPacket
用于接收长度为length
数据包,指定缓冲区的偏移量。DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
构造一个数据报包,用于将长度为length
且偏移量为ioffset
的数据包发送到指定主机上的指定端口号。DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
构造一个数据报包,用于将长度为length
且偏移量为ioffset
的数据包发送到指定主机上的指定端口号。DatagramPacket(byte[] buf, int length, InetAddress address, int port)
构造一个数据报包,用于将长度为length
的数据包发送到指定主机上的指定端口号。DatagramPacket(byte[] buf, int length, SocketAddress address)
构造数据报包,用于将长度为length
的数据包发送到指定主机上的指定端口号。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 InetAddress
getAddress()
返回发送此数据报或从中接收数据报的计算机的IP地址。byte[]
getData()
返回数据缓冲区。int
getLength()
返回要发送的数据的长度或接收的数据的长度。int
getOffset()
返回要发送的数据的偏移量或接收数据的偏移量。int
getPort()
返回发送此数据报或从中接收数据报的远程主机上的端口号。SocketAddress
getSocketAddress()
获取此数据包发送到或来自的远程主机的SocketAddress(通常是IP地址+端口号)。void
setAddress(InetAddress iaddr)
设置要将此数据报发送到的计算机的IP地址。void
setData(byte[] buf)
设置此数据包的数据缓冲区。void
setData(byte[] buf, int offset, int length)
设置此数据包的数据缓冲区。void
setLength(int length)
设置此数据包的长度。void
setPort(int iport)
设置要将此数据报发送到的远程主机上的端口号。void
setSocketAddress(SocketAddress address)
设置要将此数据报发送到的远程主机的SocketAddress(通常是IP地址+端口号)。
-
-
-
构造方法详细信息
-
DatagramPacket
public DatagramPacket(byte[] buf, int offset, int length)
构造DatagramPacket
用于接收长度为length
数据包,指定缓冲区的偏移量。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 用于保存传入数据报的缓冲区。 -
offset
- 缓冲区的偏移量 -
length
- 要读取的字节数。 - 从以下版本开始:
- 1.2
-
DatagramPacket
public DatagramPacket(byte[] buf, int length)
构造DatagramPacket
用于接收长度为length
数据包。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 用于保存传入数据报的缓冲区。 -
length
- 要读取的字节数。
-
DatagramPacket
public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
构造一个数据报包,用于将长度为length
且偏移量为ioffset
的数据包发送到指定主机上的指定端口号。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 分组数据。 -
offset
- 分组数据偏移量。 -
length
- 分组数据长度。 -
address
- 目的地址。 -
port
- 目标端口号。 - 从以下版本开始:
- 1.2
- 另请参见:
-
InetAddress
-
DatagramPacket
public DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
构造一个数据报包,用于将长度为length
且偏移量为ioffset
的数据包发送到指定主机上的指定端口号。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 分组数据。 -
offset
- 分组数据偏移量。 -
length
- 分组数据长度。 -
address
- 目标套接字地址。 - 异常
-
IllegalArgumentException
- 如果不支持地址类型 - 从以下版本开始:
- 1.4
- 另请参见:
-
InetAddress
-
DatagramPacket
public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
构造一个数据报包,用于将长度为length
的数据包发送到指定主机上的指定端口号。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 分组数据。 -
length
- 数据包长度。 -
address
- 目的地址 -
port
- 目标端口号。 - 另请参见:
-
InetAddress
-
DatagramPacket
public DatagramPacket(byte[] buf, int length, SocketAddress address)
构造一个数据报包,用于将长度为length
的数据包发送到指定主机上的指定端口号。length
参数必须小于或等于buf.length
。- 参数
-
buf
- 分组数据。 -
length
- 数据包长度。 -
address
- 目的地址。 - 异常
-
IllegalArgumentException
- 如果不支持地址类型 - 从以下版本开始:
- 1.4
- 另请参见:
-
InetAddress
-
-
方法详细信息
-
getAddress
public InetAddress getAddress()
返回发送此数据报或从中接收数据报的计算机的IP地址。- 结果
- 发送此数据报或从中接收数据报的机器的IP地址。
- 另请参见:
-
InetAddress
,setAddress(java.net.InetAddress)
-
getPort
public int getPort()
返回发送此数据报或从中接收数据报的远程主机上的端口号。- 结果
- 远程主机上发送此数据报或从中接收数据报的端口号。
- 另请参见:
-
setPort(int)
-
getData
public byte[] getData()
返回数据缓冲区。 收到的数据或要发送的数据从缓冲区中的offset
开始,运行时间为length
。- 结果
- 用于接收或发送数据的缓冲区
- 另请参见:
-
setData(byte[], int, int)
-
getOffset
public int getOffset()
返回要发送的数据的偏移量或接收数据的偏移量。- 结果
- 要发送的数据的偏移量或接收数据的偏移量。
- 从以下版本开始:
- 1.2
-
getLength
public int getLength()
返回要发送的数据的长度或接收的数据的长度。- 结果
- 要发送的数据长度或接收数据的长度。
- 另请参见:
-
setLength(int)
-
setData
public void setData(byte[] buf, int offset, int length)
设置此数据包的数据缓冲区。 这设置了数据包的数据,长度和偏移量。- 参数
-
buf
- 要为此数据包设置的缓冲区 -
offset
- 数据的偏移量 -
length
- 数据的长度和/或用于接收数据的缓冲区的长度 - 异常
-
NullPointerException
- 如果参数为null - 从以下版本开始:
- 1.2
- 另请参见:
-
getData()
,getOffset()
,getLength()
-
setAddress
public void setAddress(InetAddress iaddr)
设置要将此数据报发送到的计算机的IP地址。- 参数
-
iaddr
-InetAddress
- 从以下版本开始:
- 1.1
- 另请参见:
-
getAddress()
-
setPort
public void setPort(int iport)
设置要将此数据报发送到的远程主机上的端口号。- 参数
-
iport
- 端口号 - 从以下版本开始:
- 1.1
- 另请参见:
-
getPort()
-
setSocketAddress
public void setSocketAddress(SocketAddress address)
设置要将此数据报发送到的远程主机的SocketAddress(通常是IP地址+端口号)。- 参数
-
address
-SocketAddress
- 异常
-
IllegalArgumentException
- 如果address为null或者是此套接字不支持的SocketAddress子类 - 从以下版本开始:
- 1.4
- 另请参见:
-
getSocketAddress()
-
getSocketAddress
public SocketAddress getSocketAddress()
获取此数据包发送到或来自的远程主机的SocketAddress(通常是IP地址+端口号)。- 结果
-
SocketAddress
- 从以下版本开始:
- 1.4
- 另请参见:
-
setSocketAddress(java.net.SocketAddress)
-
setData
public void setData(byte[] buf)
设置此数据包的数据缓冲区。 将此DatagramPacket的偏移量设置为0,并将长度设置为buf
的长度。- 参数
-
buf
- 为此数据包设置的缓冲区。 - 异常
-
NullPointerException
- 如果参数为null。 - 从以下版本开始:
- 1.1
- 另请参见:
-
getLength()
,getData()
-
setLength
public void setLength(int length)
设置此数据包的长度。 数据包的长度是将要发送的数据包数据缓冲区的字节数,或者用于接收数据的数据包数据缓冲区的字节数。 长度必须小于或等于偏移量加上数据包缓冲区的长度。- 参数
-
length
- 要为此数据包设置的长度。 - 异常
-
IllegalArgumentException
- 如果长度大于数据包的数据缓冲区长度,则长度为负。 - 从以下版本开始:
- 1.1
- 另请参见:
-
getLength()
,setData(byte[], int, int)
-
-