public final class DatagramPacket
extends Object
java.lang.Object | |
↳ | java.net.DatagramPacket |
这个类表示一个数据报包。
数据报包用于实现无连接分组传送服务。 每条消息仅根据包中包含的信息从一台机器路由到另一台机器。 从一台机器发送到另一台机器的多个数据包可能路由不同,并可能以任何顺序到达。 分组传送不保证。
Public constructors |
|
---|---|
DatagramPacket(byte[] buf, int offset, int length) 构造一个 |
|
DatagramPacket(byte[] buf, int length) 构造一个 |
|
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造一个数据报包,用于发送长度为 |
|
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 构造一个数据报数据包,用于发送长度为 |
|
DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构造一个数据报包,用于将长度为 |
|
DatagramPacket(byte[] buf, int length, SocketAddress address) 构造一个数据报数据包,用于将长度为 |
Public methods |
|
---|---|
InetAddress |
getAddress() 返回发送此数据报的机器的IP地址或从中收到数据报的机器的IP地址。 |
byte[] |
getData() 返回数据缓冲区。 |
int |
getLength() 返回要发送的数据的长度或接收到的数据的长度。 |
int |
getOffset() 返回要发送的数据的偏移量或接收到的数据的偏移量。 |
int |
getPort() 返回此数据报发送到的远程主机或接收数据报的端口号。 |
SocketAddress |
getSocketAddress() 获取此数据包发送或来自的远程主机的SocketAddress(通常为IP地址+端口号)。 |
void |
setAddress(InetAddress iaddr) 设置此数据报发送到的机器的IP地址。 |
void |
setData(byte[] buf, int offset, int length) 为此数据包设置数据缓冲区。 |
void |
setData(byte[] buf) 为此数据包设置数据缓冲区。 |
void |
setLength(int length) 设置此数据包的长度。 |
void |
setPort(int iport) 设置此数据报发送到的远程主机上的端口号。 |
void |
setSocketAddress(SocketAddress address) 设置此数据报发送到的远程主机的SocketAddress(通常是IP地址+端口号)。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
DatagramPacket (byte[] buf, int offset, int length)
构造一个 DatagramPacket
用于接收长度为 length
数据包,指定到缓冲区中的偏移量。
参数 length
必须小于或等于 buf.length
。
Parameters | |
---|---|
buf |
byte : buffer for holding the incoming datagram. |
offset |
int : the offset for the buffer |
length |
int : the number of bytes to read. |
DatagramPacket (byte[] buf, int length)
构造一个 DatagramPacket
用于接收长度为 length
数据包。
参数 length
必须小于或等于 buf.length
。
Parameters | |
---|---|
buf |
byte : buffer for holding the incoming datagram. |
length |
int : the number of bytes to read. |
DatagramPacket (byte[] buf, int offset, int length, InetAddress address, int port)
构造一个数据报数据包,用于发送长度为length
,偏移量为ioffset
的数据包到指定主机上的指定端口号。 参数length
必须小于或等于buf.length
。
Parameters | |
---|---|
buf |
byte : the packet data. |
offset |
int : the packet data offset. |
length |
int : the packet data length. |
address |
InetAddress : the destination address. |
port |
int : the destination port number. |
也可以看看:
DatagramPacket (byte[] buf, int offset, int length, SocketAddress address)
构造一个数据报包,用于发送长度为length
的数据包,偏移量为ioffset
到指定主机上的指定端口号。 参数length
必须小于或等于buf.length
。
Parameters | |
---|---|
buf |
byte : the packet data. |
offset |
int : the packet data offset. |
length |
int : the packet data length. |
address |
SocketAddress : the destination socket address. |
Throws | |
---|---|
IllegalArgumentException |
if address type is not supported |
SocketException |
也可以看看:
DatagramPacket (byte[] buf, int length, InetAddress address, int port)
构造一个数据报数据包,用于将长度为length
的数据包发送到指定主机上的指定端口号。 length
参数必须小于或等于buf.length
。
Parameters | |
---|---|
buf |
byte : the packet data. |
length |
int : the packet length. |
address |
InetAddress : the destination address. |
port |
int : the destination port number. |
也可以看看:
DatagramPacket (byte[] buf, int length, SocketAddress address)
构造一个数据报数据包,用于将长度为length
的数据包发送到指定主机上的指定端口号。 参数length
必须小于或等于buf.length
。
Parameters | |
---|---|
buf |
byte : the packet data. |
length |
int : the packet length. |
address |
SocketAddress : the destination address. |
Throws | |
---|---|
IllegalArgumentException |
if address type is not supported |
SocketException |
也可以看看:
InetAddress getAddress ()
返回发送此数据报的机器的IP地址或从中收到数据报的机器的IP地址。
Returns | |
---|---|
InetAddress |
the IP address of the machine to which this datagram is being sent or from which the datagram was received. |
byte[] getData ()
返回数据缓冲区。 接收到的数据或要发送的数据从缓冲区中的offset
开始,并运行length
长。
Returns | |
---|---|
byte[] |
the buffer used to receive or send data |
也可以看看:
int getLength ()
返回要发送的数据的长度或接收到的数据的长度。
Returns | |
---|---|
int |
the length of the data to be sent or the length of the data received. |
也可以看看:
int getOffset ()
返回要发送的数据的偏移量或接收到的数据的偏移量。
Returns | |
---|---|
int |
the offset of the data to be sent or the offset of the data received. |
int getPort ()
返回此数据报发送到的远程主机或接收数据报的端口号。
Returns | |
---|---|
int |
the port number on the remote host to which this datagram is being sent or from which the datagram was received. |
也可以看看:
SocketAddress getSocketAddress ()
获取此数据包发送或来自的远程主机的SocketAddress(通常为IP地址+端口号)。
Returns | |
---|---|
SocketAddress |
the SocketAddress |
void setAddress (InetAddress iaddr)
设置此数据报发送到的机器的IP地址。
Parameters | |
---|---|
iaddr |
InetAddress : the InetAddress |
也可以看看:
void setData (byte[] buf, int offset, int length)
为此数据包设置数据缓冲区。 这设置数据包的数据,长度和偏移量。
Parameters | |
---|---|
buf |
byte : the buffer to set for this packet |
offset |
int : the offset into the data |
length |
int : the length of the data and/or the length of the buffer used to receive data |
Throws | |
---|---|
NullPointerException |
if the argument is null |
也可以看看:
void setData (byte[] buf)
为此数据包设置数据缓冲区。 将此DatagramPacket的偏移量设置为0,长度设置为buf
。
Parameters | |
---|---|
buf |
byte : the buffer to set for this packet. |
Throws | |
---|---|
NullPointerException |
if the argument is null. |
也可以看看:
void setLength (int length)
设置此数据包的长度。 数据包的长度是将要发送的数据包的数据缓冲区的字节数,或者将用于接收数据的数据包的数据缓冲区的字节数。 长度必须小于或等于偏移量加上数据包缓冲区的长度。
Parameters | |
---|---|
length |
int : the length to set for this packet. |
Throws | |
---|---|
IllegalArgumentException |
if the length is negative of if the length is greater than the packet's data buffer length. |
也可以看看:
void setPort (int iport)
设置此数据报发送到的远程主机上的端口号。
Parameters | |
---|---|
iport |
int : the port number |
也可以看看:
void setSocketAddress (SocketAddress address)
设置此数据报发送到的远程主机的SocketAddress(通常是IP地址+端口号)。
Parameters | |
---|---|
address |
SocketAddress : the SocketAddress |
Throws | |
---|---|
IllegalArgumentException |
if address is null or is a SocketAddress subclass not supported by this socket |
也可以看看: