模块  java.base
软件包  java.net

Class DatagramSocketImpl

  • 实现的所有接口
    SocketOptions

    public abstract class DatagramSocketImpl
    extends Object
    implements SocketOptions
    抽象数据报和组播套接字实现基类。
    从以下版本开始:
    1.1
    • 字段详细信息

      • localPort

        protected int localPort
        本地端口号。
    • 构造方法详细信息

      • 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 - 如果发生I / O异常
        PortUnreachableException - 如果套接字连接到当前无法访问的目标,则可能抛出此异常。 注意,不保证会抛出异常。
      • peekData

        protected abstract int peekData​(DatagramPacket p)
                                 throws IOException
        窥视数据包,看看它是谁。 数据将复制到指定的DatagramPacket 返回数据但不消耗,以便后续的peekData / receive操作将看到相同的数据。
        参数
        p - 收到的数据包。
        结果
        数据包来自的端口号。
        异常
        IOException - 如果发生I / 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
        Deprecated.
        use setTimeToLive instead.
        设置TTL(生存时间)选项。
        参数
        ttl - 指定TTL值的字节
        异常
        IOException - 如果在设置生存时间选项时发生I / O异常。
        另请参见:
        getTTL()
      • getTTL

        @Deprecated
        protected abstract byte getTTL()
                                throws IOException
        Deprecated.
        use getTimeToLive instead.
        检索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 - 指定了将组保留在的本地接口
        异常
        IOException - 如果在离开多播组时发生I / O异常
        从以下版本开始:
        1.4
      • close

        protected abstract void close()
        关闭插座。
      • getLocalPort

        protected int getLocalPort()
        获取本地端口。
        结果
        int表示本地端口值
      • getFileDescriptor

        protected FileDescriptor getFileDescriptor()
        获取数据报套接字文件描述符。
        结果
        表示数据报套接字文件描述符的 FileDescriptor对象
      • setOption

        protected <T> void setOption​(SocketOption<T> name,
                                     T value)
                              throws IOException
        被调用来设置套接字选项。
        参数类型
        T - 套接字选项值的类型
        参数
        name - 套接字选项
        value - 套接字选项的值。 null可能对某些选项有效。
        异常
        UnsupportedOperationException - 如果DatagramSocketImpl不支持该选项
        NullPointerException - 如果名称是 null
        IOException - 如果在尝试设置选项时发生I / O问题
        从以下版本开始:
        9
      • getOption

        protected <T> T getOption​(SocketOption<T> name)
                           throws IOException
        被叫获得套接字选项。
        参数类型
        T - 套接字选项值的类型
        参数
        name - 套接字选项
        结果
        套接字选项
        异常
        UnsupportedOperationException - 如果DatagramSocketImpl不支持该选项
        NullPointerException - 如果名称是 null
        IOException - 如果在尝试设置选项时发生I / O问题
        从以下版本开始:
        9
      • supportedOptions

        protected Set<SocketOption<?>> supportedOptions()
        返回此impl支持的一组SocketOptions以及此impl的套接字(DatagramSocket或MulticastSocket)
        结果
        一组SocketOptions
        从以下版本开始:
        9