- java.lang.Object
-
- java.net.DatagramSocketImpl
-
- 实现的所有接口
-
SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
抽象数据报和组播套接字实现基类。- 从以下版本开始:
- 1.1
-
-
字段汇总
字段 变量和类型 字段 描述 protected FileDescriptor
fd
文件描述符对象。protected int
localPort
本地端口号。-
Fields declared in interface 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
-
-
构造方法摘要
构造方法 构造器 描述 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 <T> T
getOption(SocketOption<T> name)
被叫获得套接字选项。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 <T> void
setOption(SocketOption<T> name, T value)
被调用来设置套接字选项。protected abstract void
setTimeToLive(int ttl)
设置TTL(生存时间)选项。protected abstract void
setTTL(byte ttl)
已过时。请改用setTimeToLive。protected Set<SocketOption<?>>
supportedOptions()
返回此impl支持的一组SocketOptions以及此impl的套接字(DatagramSocket或MulticastSocket)-
声明方法的类 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
文件描述符对象。
-
-
方法详细信息
-
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
-
-