JavaTM Platform
Standard Ed. 6

java.net
类 DatagramPacket

java.lang.Object
  继承者 java.net.DatagramPacket

public final class DatagramPacket
extends Object

此类表示数据报包。

数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。

从以下版本开始:
JDK1.0

构造方法摘要
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
 

构造方法详细信息

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 - 保存传入数据报的缓冲区。
len - 要读取的字节数。

DatagramPacket

public DatagramPacket(byte[] buf,
                      int offset,
                      int length,
                      InetAddress address,
                      int port)
构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。length 参数必须小于等于 buf.length

参数:
buf - 包数据。
offset - 包数据偏移量。
length - 包数据长度。
address - 目的地址。
port - 目的端口号。
从以下版本开始:
1.2
另请参见:
InetAddress

DatagramPacket

public DatagramPacket(byte[] buf,
                      int offset,
                      int length,
                      SocketAddress address)
               throws SocketException
构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。length 参数必须小于等于 buf.length

参数:
buf - 包数据。
offset - 包数据偏移量。
length - 包数据长度。
address - 目的套接字地址。
抛出:
IllegalArgumentException - 如果地址类型不受支持
SocketException
从以下版本开始:
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)
               throws SocketException
构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。length 参数必须小于等于 buf.length

参数:
buf - 包数据。
length - 包长度。
address - 目的地址。
抛出:
IllegalArgumentException - 如果地址类型不受支持
SocketException
从以下版本开始:
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
从以下版本开始:
JDK1.1
另请参见:
getAddress()

setPort

public void setPort(int iport)
设置要将此数据报发往的远程主机上的端口号。

参数:
iport - 端口号
从以下版本开始:
JDK1.1
另请参见:
getPort()

setSocketAddress

public void setSocketAddress(SocketAddress address)
设置要将此数据报发往的远程主机的 SocketAddress(通常为 IP 地址 + 端口号)。

参数:
address - SocketAddress
抛出:
IllegalArgumentException - 如果地址为 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。
从以下版本开始:
JDK1.1
另请参见:
getLength(), getData()

setLength

public void setLength(int length)
为此包设置长度。包的长度是指包数据缓冲区中将要发送的字节数,或用来接收数据的包数据缓冲区的字节数。长度必须小于等于偏移量与包缓冲区长度之和。

参数:
length - 要为此包设置的长度。
抛出:
IllegalArgumentException - 如果长度为负或大于包数据缓冲区长度。
从以下版本开始:
JDK1.1
另请参见:
getLength(), setData(byte[], int, int)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策