java.lang.Object
java.net.DatagramSocketImpl
- 所有已实现的接口:
SocketOptions
抽象数据报和多播套接字实现基类。
- 自从:
- 1.1
-
字段摘要
字段在接口 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_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY -
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述protected abstract voidbind(int lport, InetAddress laddr) 将数据报套接字绑定到本地端口和地址。protected abstract voidclose()关闭socket。protected voidconnect(InetAddress address, int port) 将数据报套接字连接到远程目标。protected abstract voidcreate()创建数据报套接字。protected void断开数据报套接字与其远程目标的连接。protected FileDescriptor获取数据报套接字文件描述符。protected int获取本地端口。protected <T> TgetOption(SocketOption<T> name) 调用以获取套接字选项。protected abstract int检索 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 int查看包裹,看看它来自谁。protected abstract void接收数据报包。protected abstract void发送数据报包。protected <T> voidsetOption(SocketOption<T> name, T value) 调用以设置套接字选项。protected abstract voidsetTimeToLive(int ttl) 设置 TTL(生存时间)选项。protected abstract voidsetTTL(byte ttl) 已弃用。请改用 setTimeToLive。protected Set<SocketOption<?>>返回此 impl 和此 impl 的套接字(DatagramSocket 或 MulticastSocket)支持的一组 SocketOptions在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 java.net.SocketOptions 中声明的方法
getOption, setOption
-
字段详细信息
-
localPort
protected int localPort本地端口号。 -
fd
文件描述符对象。
-
-
构造方法详细信息
-
DatagramSocketImpl
public DatagramSocketImpl()子类调用的构造方法。
-
-
方法详情
-
create
创建数据报套接字。- 抛出:
SocketException- 如果底层协议出现错误,例如 TCP 错误。
-
bind
将数据报套接字绑定到本地端口和地址。- 参数:
lport- 本地端口laddr- 本地地址- 抛出:
SocketException- 如果底层协议出现错误,例如 TCP 错误。
-
send
发送数据报包。该数据包包含数据和要将数据包发送到的目标地址。- 参数:
p- 要发送的数据包。- 抛出:
IOException- 如果在发送数据报包时发生 I/O 异常。PortUnreachableException- 如果套接字连接到当前无法到达的目的地,则可能会抛出。请注意,不能保证会抛出异常。
-
connect
将数据报套接字连接到远程目标。这将远程地址与本地套接字相关联,以便数据报只能发送到该目的地并从该目的地接收。这可能会被重写以调用本机系统连接。如果套接字连接到的远程目的地不存在,或者无法到达,并且如果已收到该地址的 ICMP 目的地无法到达的数据包,则随后的发送或接收调用可能会抛出 PortUnreachableException。请注意,不能保证会抛出异常。
- 实现要求:
-
此方法的默认实现抛出
SocketException。 - 参数:
address- 要连接的远程 InetAddressport- 远程端口号- 抛出:
SocketException- 如果套接字无法连接到远程目标可能会抛出- 自从:
- 1.4
-
disconnect
protected void disconnect()断开数据报套接字与其远程目标的连接。- 实现要求:
-
此方法的默认实现抛出
UncheckedIOException。 - 抛出:
UncheckedIOException- 如果断开连接失败或未提供实现- 自从:
- 1.4
-
peek
查看包裹,看看它来自谁。将指定的InetAddress更新为数据包的来源地址。- 参数:
i- InetAddress 对象- 返回:
- 数据包来自的端口号。
- 抛出:
IOException- 如果发生 I/O 异常PortUnreachableException- 如果套接字连接到当前无法到达的目的地,则可能会抛出。请注意,不能保证会抛出异常。
-
peekData
查看包裹,看看它来自谁。数据被复制到指定的DatagramPacket中。返回数据,但不使用数据,因此后续的 peekData/receive 操作将看到相同的数据。- 参数:
p- 收到的数据包。- 返回:
- 数据包来自的端口号。
- 抛出:
IOException- 如果发生 I/O 异常PortUnreachableException- 如果套接字连接到当前无法到达的目的地,则可能会抛出。请注意,不能保证会抛出异常。- 自从:
- 1.4
-
receive
接收数据报包。- 参数:
p- 收到的数据包。- 抛出:
IOException- 如果在接收数据报包时发生 I/O 异常。PortUnreachableException- 如果套接字连接到当前无法到达的目的地,则可能会抛出。请注意,不能保证会抛出异常。
-
setTTL
已弃用。请改用 setTimeToLive。设置 TTL(生存时间)选项。- 参数:
ttl- 指定 TTL 值的字节- 抛出:
IOException- 如果在设置生存时间选项时发生 I/O 异常。- 参见:
-
getTTL
已弃用。请改用 getTimeToLive。检索 TTL(生存时间)选项。- 返回:
- 表示 TTL 值的字节
- 抛出:
IOException- 如果在检索生存时间选项时发生 I/O 异常- 参见:
-
setTimeToLive
设置 TTL(生存时间)选项。- 参数:
ttl- 一个int指定生存时间值- 抛出:
IOException- 如果在设置生存时间选项时发生 I/O 异常。- 参见:
-
getTimeToLive
检索 TTL(生存时间)选项。- 返回:
int表示生存时间值- 抛出:
IOException- 如果在检索生存时间选项时发生 I/O 异常- 参见:
-
join
加入多播组。- 参数:
inetaddr- 要加入的多播地址。- 抛出:
IOException- 如果在加入多播组时发生 I/O 异常。
-
leave
离开多播组。- 参数:
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()关闭socket。 -
getLocalPort
protected int getLocalPort()获取本地端口。- 返回:
-
一个
int表示本地端口值
-
getFileDescriptor
获取数据报套接字文件描述符。- 返回:
-
代表数据报套接字文件描述符的
FileDescriptor对象
-
setOption
调用以设置套接字选项。- 实现要求:
-
此方法的默认实现首先检查给定的套接字选项
name不为空,然后抛出UnsupportedOperationException。子类应使用适当的实现覆盖此方法。 - 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项value- 套接字选项的值。null的值可能对某些选项有效。- 抛出:
UnsupportedOperationException- 如果 DatagramSocketImpl 不支持该选项IllegalArgumentException- 如果该值对选项无效IOException- 如果发生 I/O 错误,或者套接字已关闭NullPointerException- 如果名字是null- 自从:
- 9
-
getOption
调用以获取套接字选项。- 实现要求:
-
此方法的默认实现首先检查给定的套接字选项
name不为空,然后抛出UnsupportedOperationException。子类应使用适当的实现覆盖此方法。 - 类型参数:
T- 套接字选项值的类型- 参数:
name- 套接字选项- 返回:
- 套接字选项
- 抛出:
UnsupportedOperationException- 如果 DatagramSocketImpl 不支持该选项IOException- 如果发生 I/O 错误,或者套接字已关闭NullPointerException- 如果名字是null- 自从:
- 9
-
supportedOptions
返回此 impl 和此 impl 的套接字(DatagramSocket 或 MulticastSocket)支持的一组 SocketOptions- 实现要求:
- 此方法的默认实现返回一个空集。子类应使用适当的实现重写此方法。
- 返回:
- 一组 SocketOptions
- 自从:
- 9
-