java.lang.Object java.net.DatagramPacket
public final class DatagramPacket
此类表示数据报包。
数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。
构造方法摘要 | |
---|---|
DatagramPacket(byte[] buf, int length) 构造 DatagramPacket ,用来接收长度为 length 的数据包。 |
|
DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。 |
|
DatagramPacket(byte[] buf, int offset, int length) 构造 DatagramPacket ,用来接收长度为 length 的包,在缓冲区中指定了偏移量。 |
|
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 |
|
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 |
|
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 地址 + 端口号)。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public DatagramPacket(byte[] buf, int offset, int length)
DatagramPacket
,用来接收长度为
length
的包,在缓冲区中指定了偏移量。
length
参数必须小于等于 buf.length
。
buf
- 保存传入数据报的缓冲区。
offset
- 缓冲区的偏移量
length
- 读取的字节数。
public DatagramPacket(byte[] buf, int length)
DatagramPacket
,用来接收长度为
length
的数据包。
length
参数必须小于等于 buf.length
。
buf
- 保存传入数据报的缓冲区。
len
- 要读取的字节数。
public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
length
偏移量为
offset
的包发送到指定主机上的指定端口号。
length
参数必须小于等于
buf.length
。
buf
- 包数据。
offset
- 包数据偏移量。
length
- 包数据长度。
address
- 目的地址。
port
- 目的端口号。
InetAddress
public DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) throws SocketException
length
偏移量为
offset
的包发送到指定主机上的指定端口号。
length
参数必须小于等于
buf.length
。
buf
- 包数据。
offset
- 包数据偏移量。
length
- 包数据长度。
address
- 目的套接字地址。
IllegalArgumentException
- 如果地址类型不受支持
SocketException
InetAddress
public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
length
的包发送到指定主机上的指定端口号。
length
参数必须小于等于
buf.length
。
buf
- 包数据。
length
- 包长度。
address
- 目的地址。
port
- 目的端口号。
InetAddress
public DatagramPacket(byte[] buf, int length, SocketAddress address) throws SocketException
length
的包发送到指定主机上的指定端口号。
length
参数必须小于等于
buf.length
。
buf
- 包数据。
length
- 包长度。
address
- 目的地址。
IllegalArgumentException
- 如果地址类型不受支持
SocketException
InetAddress
方法详细信息 |
---|
public InetAddress getAddress()
InetAddress
,
setAddress(java.net.InetAddress)
public int getPort()
setPort(int)
public byte[] getData()
offset
处开始,持续
length
长度。
setData(byte[], int, int)
public int getOffset()
public int getLength()
setLength(int)
public void setData(byte[] buf, int offset, int length)
buf
- 要为此包设置的缓冲区。
offset
- 数据中的偏移量
length
- 数据的长度和/或用来接收数据的缓冲区长度。
NullPointerException
- 如果参数为 null。
getData()
,
getOffset()
,
getLength()
public void setAddress(InetAddress iaddr)
iaddr
-
InetAddress
getAddress()
public void setPort(int iport)
iport
- 端口号
getPort()
public void setSocketAddress(SocketAddress address)
address
-
SocketAddress
IllegalArgumentException
- 如果地址为 null 或为不受此套接字支持的 SocketAddress 子类。
getSocketAddress()
public SocketAddress getSocketAddress()
SocketAddress
setSocketAddress(java.net.SocketAddress)
public void setData(byte[] buf)
buf
的长度。
buf
- 要为此包设置的缓冲区。
NullPointerException
- 如果参数为 null。
getLength()
,
getData()
public void setLength(int length)
length
- 要为此包设置的长度。
IllegalArgumentException
- 如果长度为负或大于包数据缓冲区长度。
getLength()
,
setData(byte[], int, int)