- java.lang.Object
-
- java.net.DatagramSocketImpl
-
- All Implemented Interfaces:
-
SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
抽象数据报和组播套接字实现基类。- 从以下版本开始:
- 1.1
-
-
Field Summary
Fields Modifier and Type Field 描述 protected FileDescriptor
fd
文件描述符对象。protected int
localPort
本地端口号。-
Fields inherited from 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
-
-
构造方法摘要
构造方法 Constructor 描述 DatagramSocketImpl()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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和该impl的套接字(DatagramSocket或MulticastSocket)支持的SocketOptions,-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface 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
已过时。 使用setTimeToLive代替。设置TTL(生存时间)选项。- 参数
-
ttl
- 指定TTL值的字节 - 异常
-
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
- 指定本地界面离开组 - 异常
-
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和该impl的套接字(DatagramSocket或MulticastSocket)支持的SocketOptions,- 结果
- 一套SocketOptions
- 从以下版本开始:
- 9
-
-