JavaTM Platform
Standard Ed. 6

java.net
类 DatagramSocketImpl

java.lang.Object
  继承者 java.net.DatagramSocketImpl
所有已实现的接口:
SocketOptions

public abstract class DatagramSocketImpl
     
extends Object
implements SocketOptions

数据报和多播套接字实现的抽象基类。

从以下版本开始:
JDK1.1

字段摘要
protected  FileDescriptor fd
          文件描述符对象。
protected  int localPort
          本地端口号。
 
从接口 java.net.SocketOptions 继承的字段
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
 
构造方法摘要
DatagramSocketImpl()
           
 
方法摘要
protected abstract  void bind(int lport, InetAddress laddr)
          将数据报套接字绑定到本地端口和地址。
protected abstract  void close()
          关闭套接字。
protected  void connect(InetAddress address, int port)
          将数据报套接字连接到远程目标。
protected abstract  void create()
          创建数据报套接字。
protected  void disconnect()
          断开数据报套接字和远程目标的连接。
protected  FileDescriptor getFileDescriptor()
          获取数据报套接字文件描述符。
protected  int getLocalPort()
          获取本地端口。
protected abstract  int getTimeToLive()
          获取 TTL (生存时间)选项。
protected abstract  byte getTTL()
          已过时。 使用 getTimeToLive 代替。
protected abstract  void join(InetAddress inetaddr)
          加入多播组。
protected abstract  void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)
          加入多播组。
protected abstract  void leave(InetAddress inetaddr)
          退出多播组。
protected abstract  void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)
          退出多播组。
protected abstract  int peek(InetAddress i)
          查看包来自哪里。
protected abstract  int peekData(DatagramPacket p)
          查看包来自哪里。
protected abstract  void receive(DatagramPacket p)
          接收数据报包。
protected abstract  void send(DatagramPacket p)
          发送数据报包。
protected abstract  void setTimeToLive(int ttl)
          设置 TTL (生存时间)选项。
protected abstract  void setTTL(byte ttl)
          已过时。 使用 setTimeToLive 代替。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 java.net.SocketOptions 继承的方法
getOption, setOption
 

字段详细信息

localPort

protected int localPort
本地端口号。


fd

protected FileDescriptor fd
文件描述符对象。

构造方法详细信息

DatagramSocketImpl

public DatagramSocketImpl()
方法详细信息

create

protected abstract void create()
                        throws SocketException
创建数据报套接字。

抛出:
SocketException - 如果底层协议出现错误,例如 TCP 错误。

bind

protected abstract void bind(int lport,
                             InetAddress laddr)
                      throws SocketException
将数据报套接字绑定到本地端口和地址。

参数:
lport - 本地端口
laddr - 本地地址
抛出:
SocketException - 如果底层协议出现错误,例如 TCP 错误。

send

protected abstract void send(DatagramPacket p)
                      throws IOException
发送数据报包。包包含数据和要将包发往的目的地址。

参数:
p - 将发送的包。
抛出:
IOException - 如果发送数据报包时出现 I/O 异常。
PortUnreachableException - 套接字连接到当前不可达的目标时可能抛出。注意,不能保证一定抛出该异常。

connect

protected void connect(InetAddress address,
                       int port)
                throws SocketException
将数据报套接字连接到远程目标。此方法使本地套接字和远程地址相关联,从而数据报只能被发送到此目标并只能从此目标被接收。可以重写此方法来调用本机系统连接。

如果套接字要连接的远程目标不存在或不可到达,并且收到了该地址的目标不可达 ICMP 包,那么后续发送和接收的调用可能会抛出 PortUnreachableException。注意,不能保证一定抛出该异常。

参数:
address - 要连接的远程 InetAddress
port - 远程端口号
抛出:
SocketException - 套接字不能连接到远程目标时可能抛出
从以下版本开始:
1.4

disconnect

protected void disconnect()
断开数据报套接字和远程目标的连接。

从以下版本开始:
1.4

peek

protected abstract int peek(InetAddress i)
                     throws IOException
查看包来自哪里。将指定的 InetAddress 更新为发送包的地址。

参数:
i - InetAddress 对象
返回:
发送包的端口号。
抛出:
IOException - 如果发生 /O 异常
PortUnreachableException - 套接字连接到当前不可到达的目标时可能抛出。注意,不能保证一定抛出该异常。

peekData

protected abstract int peekData(DatagramPacket p)
                         throws IOException
查看包来自哪里。数据被复制到指定的 DatagramPacket。数据返回,但不用掉,以便后续 peekData/receive 操作能看到相同的数据。

参数:
p - 收到的包。
返回:
发送包的端口号。
抛出:
IOException - 如果出现 /O 异常
PortUnreachableException - 套接字连接到当前不可到达的目标时可能抛出。注意,不能保证一定抛出该异常。
从以下版本开始:
1.4

receive

protected abstract void receive(DatagramPacket p)
                         throws IOException
接收数据报包。

参数:
p - 收到的包。
抛出:
IOException - 如果接收数据报包时发生 I/O 异常。
PortUnreachableException - 套接字连接到当前不可达的目标时可能抛出。注意,不能保证一定抛出该异常。

setTTL

@Deprecated
protected abstract void setTTL(byte ttl)
                        throws IOException
已过时。  使用 setTimeToLive 代替。

设置 TTL(生存时间)选项。

参数:
ttl - 指定 TTL 值的 byte。
抛出:
IOException - 如果设置生存时间选项时发生 I/O 异常。
另请参见:
getTTL()

getTTL

@Deprecated
protected abstract byte getTTL()
                        throws IOException
已过时。  使用 getTimeToLive 代替。

获取 TTL(生存时间)选项。

返回:
表示 TTL 值的字节
抛出:
IOException - 如果获取生存时间选项时发生 I/O 异常
另请参见:
setTTL(byte)

setTimeToLive

protected abstract void setTimeToLive(int ttl)
                               throws IOException
设置 TTL (生存时间)选项。

参数:
ttl - 指定生存时间的 int
抛出:
IOException - 如果设置生存时间选项时发生 I/O 异常。
另请参见:
getTimeToLive()

getTimeToLive

protected abstract int getTimeToLive()
                              throws IOException
获取 TTL (生存时间)选项。

返回:
表示生存时间的 int
抛出:
IOException - 如果获取生存时间选项时发生 I/O 异常。
另请参见:
setTimeToLive(int)

join

protected abstract void join(InetAddress inetaddr)
                      throws IOException
加入多播组。

参数:
inetaddr - 要加入的多播地址。
抛出:
IOException - 如果加入多播组时发生 I/O 异常。

leave

protected abstract void leave(InetAddress inetaddr)
                       throws IOException
退出多播组。

参数:
inetaddr - 要退出的多播地址。
抛出:
IOException - 如果退出多播组时出现 I/O 异常。

joinGroup

protected abstract void joinGroup(SocketAddress mcastaddr,
                                  NetworkInterface netIf)
                           throws IOException
加入多播组。

参数:
mcastaddr - 要加入的地址。
netIf - 指定接收多播数据报包的本地接口
抛出:
IOException - 如果加入多播组时出现 I/O 异常
从以下版本开始:
1.4

leaveGroup

protected abstract void leaveGroup(SocketAddress mcastaddr,
                                   NetworkInterface netIf)
                            throws IOException
退出多播组。

参数:
mcastaddr - 要退出的地址。
netIf - 指定的退出组的本地接口 throws IOException 如果退出多播组时出现 I/O 异常
抛出:
IOException
从以下版本开始:
1.4

close

protected abstract void close()
关闭套接字。


getLocalPort

protected int getLocalPort()
获取本地端口。

返回:
表示本地端口值的 int 值。

getFileDescriptor

protected FileDescriptor getFileDescriptor()
获取数据报套接字文件描述符。

返回:
表示数据报套接字文件描述符的 FileDescriptor 对象。

JavaTM Platform
Standard Ed. 6

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

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