所有类


java.net
类 DatagramSocketImpl

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

public abstract class DatagramSocketImpl
   
   
   
   
   
extends Object
implements SocketOptions

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

从以下版本开始:
JDK1.1

字段摘要
protected  FileDescriptorfd
          文件描述符对象。
protected  intlocalPort
          本地端口号。
 
从接口 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  voidbind(int lport, InetAddress laddr)
          将数据报套接字绑定到本地端口和地址。
protected abstract  voidclose()
          关闭套接字。
protected  voidconnect(InetAddress address, int port)
          将数据报套接字连接到远程目标。
protected abstract  voidcreate()
          创建数据报套接字。
protected  voiddisconnect()
          断开数据报套接字和远程目标的连接。
protected  FileDescriptorgetFileDescriptor()
          获取数据报套接字文件描述符。
protected  intgetLocalPort()
          获取本地端口。
protected abstract  intgetTimeToLive()
          检索 TTL (生存时间)选项。
protected abstract  bytegetTTL()
          已过时。 使用 getTimeToLive 代替。
protected abstract  voidjoin(InetAddress inetaddr)
          加入多播组。
protected abstract  voidjoinGroup(SocketAddress mcastaddr, NetworkInterface netIf)
          加入多播组。
protected abstract  voidleave(InetAddress inetaddr)
          退出多播组。
protected abstract  voidleaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)
          退出多播组。
protected abstract  intpeek(InetAddress i)
          查看包来自哪里。
protected abstract  intpeekData(DatagramPacket p)
          查看包来自哪里。
protected abstract  voidreceive(DatagramPacket p)
          接收数据报包。
protected abstract  voidsend(DatagramPacket p)
          发送数据报包。
protected abstract  voidsetTimeToLive(int ttl)
          设置 TTL (生存时间)选项。
protected abstract  voidsetTTL(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 - 本地端口 param 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
查看包来自哪里。

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