public final class DatagramPacket extends Object
数据报包用于实现无连接分组传送服务。 仅基于该数据包中包含的信息,每个消息从一台机器路由到另一台机器。 从一台机器发送到另一台机器的多个分组可能会有不同的路由,并且可能以任何顺序到达。 包传送不能保证。
| Constructor and Description |
|---|
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具有偏移
ioffset指定主机上到指定的端口号。
|
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
构造用于发送长度的分组数据报包
length具有偏移
ioffset指定主机上到指定的端口号。
|
DatagramPacket(byte[] buf, int length, SocketAddress address)
构造用于发送长度的分组的数据报包
length指定主机上到指定的端口号。
|
| Modifier and Type | Method and Description |
|---|---|
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地址+端口号)。
|
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 - 用于保存传入数据报的缓冲区。
length - 要读取的字节数。
public DatagramPacket(byte[] buf,
int offset,
int length,
InetAddress address,
int port)
length具有偏移ioffset指定主机上到指定的端口号。
length参数必须小于或等于buf.length 。
buf - 数据包数据。
offset - 分组数据偏移量。
length - 分组数据长度。
address - 目的地址。
port - 目的端口号。
InetAddress
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
length具有偏移ioffset指定主机上到指定的端口号。
length参数必须小于或等于buf.length 。
buf - 分组数据。
offset - 分组数据偏移。
length - 分组数据长度。
address - 目标套接字地址。
IllegalArgumentException - 如果不支持地址类型
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)
length指定主机上到指定的端口号。
length参数必须小于或等于buf.length 。
buf - 数据包数据。
length - 包长度。
address - 目的地址。
IllegalArgumentException - 如果不支持地址类型
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 - 如果参数为空
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 - 如果地址为空或是此套接字不支持的SocketAddress子类
getSocketAddress()
public SocketAddress getSocketAddress()
SocketAddress
setSocketAddress(java.net.SocketAddress)
public void setData(byte[] buf)
buf的长度。
buf - 为此数据包设置的缓冲区。
NullPointerException - 如果参数为空。
getLength() ,
getData()
public void setLength(int length)
length - 为此数据包设置的长度。
IllegalArgumentException - 如果长度大于数据包的数据缓冲区长度,则为长度。
getLength() ,
setData(byte[], int, int)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.