类 java.net.DatagramSocket
java.lang.Object
|
+----java.net.DatagramSocket
- public class DatagramSocket
- extends Object
- super class of:
- MulticastSocket
此类表示一个发送和接收数据报文包的 socket 。
一个数据报文 socket 是无连接包传递服务的发送或接收点。
每一个在数据报文 socket 发送或接收的包都独立地进行寻址和路由。
多个包从一台机器到另一台机器可能经过不同的路径,并且可以以任意顺序到达。
- 来自:
- JDK1.0
- 参见:
- DatagramPacket
构造子索引
- DatagramSocket()
- 构造一个数据报文 socket 并且把它捆绑到本地主机任意可用的端口上。
- DatagramSocket(int)
- 构造一个数据报文 socket 并且把它捆绑到本地主机指定的端口上。
- DatagramSocket(int, InetAddress)
- 生成一个数据报文 socket ,并捆绑到指定的本地地址。
方法索引
- close()
- 关闭该数据报文 socket 。
- getLocalAddress()
- 获取该 socket 绑定的本地地址。
- getLocalPort()
- 返回该 socket 绑定的本地主机的端口号。
- getSoTimeout()
- 提取 SO_TIMEOUT 的设置。
- receive(DatagramPacket)
- 从此 socket 接收数据报文包。
- send(DatagramPacket)
- 从此 socket 发送数据报文包。
- setSoTimeout(int)
- 以毫秒为单位,设置或取消由 SO_TIMEOUT 指定的超时。
构造子
DatagramSocket
public DatagramSocket() throws SocketException
- 构造一个数据报文 socket 并且把它捆绑到本地主机任意可用的端口。
- 抛出:SocketException
- 如果该 socket 无法打开,或该 socket 无法绑定到指定的本机端口。
DatagramSocket
public DatagramSocket(int port) throws SocketException
- 构造一个数据报文 socket 并且把它捆绑到本地主机指定的端口。
- 参数:
- local - 使用的端口。
- 抛出:SocketException
- 如果该 socket 无法打开,或该 socket 无法绑定到指定的本机端口。
DatagramSocket
public DatagramSocket(int port,
InetAddress laddr) throws SocketException
- 生成一个数据报文 socket ,并捆绑到指定的本地地址。 本机端口必须为 0 和 65535 之间的一个。
- 参数:
- port - 使用的本机端口。
- laddr - 捆绑的本地地址 。
方法
send
public void send(DatagramPacket p) throws IOException
- 从此 socket 发送数据报文包。
DatagramPacket 包含发送的数据的有关信息,包括它的长度,远程主机的IP 地址和远程主机的端口号。
- 参数:
- p - 发送的
DatagramPacket 。
- 抛出:
IOException
- 如果发生一个 I/O 错误。
- 参见:
- DatagramPacket
receive
public synchronized void receive(DatagramPacket p) throws IOException
- 从此 socket 接收数据报文包。 当该方法返回时, 接收的数据填充到
DatagramPacket 的缓冲区。
该数据报文包还包含发送方的IP 地址和发送方机器的端口号。
该方法按块记录,直到接收到一个数据报文包。 数据报文包对象的 length 字段包含接收的报文的长度。
如果报文的长度大于缓冲区长度 ,报文将被截断 。
- 参数:
- p - 输入的数据放入的
DatagramPacket 。
- 抛出:
IOException
- 如果发生一个 I/O 错误。
- 参见:
- DatagramPacket, DatagramSocket
getLocalAddress
public InetAddress getLocalAddress()
- 获取该 socket 绑定的本地地址。
getLocalPort
public int getLocalPort()
- 返回该 socket 绑定的本地主机的端口号码。
- 返回:
- 返回该 socket 绑定的本地主机的端口号。
setSoTimeout
public synchronized void setSoTimeout(int timeout) throws SocketException
- 以毫秒为单位,设置或取消 SO_TIMEOUT 指定的超时。 使用设置成非零的超时选择项对该 DatagramSocket 调用 receive() 方法,该方法在这段设定的时间内阻塞。
如果超时得以验证 ,java.io.InterruptedIOException 将被启动 ,即使 ServerSocket 仍有效。 选择项 must 被设置成可以加入封锁操作。 超时必须是
> 0 。
取值为零的超时被解释为无穷大的超时。
getSoTimeout
public synchronized int getSoTimeout() throws SocketException
- 提取 SO_TIMEOUT 的设置。 返回值为 0 表示该选择项是屏蔽的 (如: 超时为无穷大)。
close
public void close()
- 关闭该数据报文 socket 。