Java ServerSocketChannel虚拟类
2021/12/18 10:21:47
总结
- ServerSocketChannel虚拟类是面向流的侦听套接字的多路复用通道
- ServerSocketChannel服务器套接字通道是通过调用此类的open()方法创建的,无法为任意预先存在的ServerSocket创建通道
- 新创建的服务器套接字通道已打开,但尚未绑定, 试图调用未绑定服务器套接字通道的accept()方法将导致抛出NotYetBoundException
- 可以通过调用此类定义的bind()方法之一来绑定服务器套接字通道
ServerSocketChannel虚拟类方法
方法名 | 作用 |
---|
static ServerSocketChannel open() | 打开服务器套接字通道 |
final int validOps() | 返回标识此通道支持的操作的操作集, 如接收连接操作 |
final ServerSocketChannel bind(SocketAddress local) | 将通道的套接字绑定到本地地址,并将套接字配置为侦听连接 |
abstract ServerSocketChannel bind(SocketAddress local, int backlog) | 上面一个函数会调用该函数将通道的套接字绑定到本地地址,backlog参数是套接字上挂起的最大连接数,如果backlog为0,则使用操作系统的默认值。挂起的连接指的是排队等待accept()接收并创建SocketChannel的连接请求 |
abstract ServerSocketChannel setOption(SocketOption name, T value) | 设置通道套接字选项,具体选项看StandardSocketOptions类 |
abstract SocketChannel accept() | 接受想与此通道套接字连接的连接请求,如果此通道处于非阻塞模式,且没有挂起的连接, 此方法将立即返回null,否则它将无限期阻塞,直到新连接可用或发生I/O错误。此方法返回的套接字通道(如果有)将处于阻塞模式,而与此通道的阻塞模式无关 |
abstract SocketAddress getLocalAddress() | 获取本地套接字地址 |