ServerSocketChannel API用法
java.nio.channels
类 ServerSocketChannel
java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
java.nio.channels.ServerSocketChannel
- 所有已实现的接口:
- Closeable, Channel, InterruptibleChannel
public abstract class ServerSocketChannelextends AbstractSelectableChannel
针对面向流的侦听套接字的可选择通道。
服务器套接字通道不是侦听网络套接字的完整抽象。必须通过调用 socket 方法所获得的关联 ServerSocket 对象来完成对套接字选项的绑定和操作。不可能为任意的已有服务器套接字创建通道,也不可能指定与服务器套接字通道关联的服务器套接字所使用的 SocketImpl 对象。
通过调用此类的 open 方法创建服务器套接字通道。新创建的服务器套接字通道已打开,但尚未绑定。试图调用未绑定的服务器套接字通道的 accept 方法会导致抛出 NotYetBoundException。可通过调用相关服务器套接字的某个 bind 方法来绑定服务器套接字通道。
多个并发线程可安全地使用服务器套接字通道。
- 从以下版本开始:
- 1.4
| 构造方法摘要 | |
|---|---|
protected |
ServerSocketChannel(SelectorProvider provider) 初始化此类的一个新实例。 |
| 方法摘要 | |
|---|---|
abstract SocketChannel |
accept() 接受到此通道套接字的连接。 |
static ServerSocketChannel |
open() 打开服务器套接字通道。 |
abstract ServerSocket |
socket() 获取与此通道关联的服务器套接字。 |
int |
validOps() 返回一个操作集,标识此通道所支持的操作。 |
| 从类 java.nio.channels.spi.AbstractSelectableChannel 继承的方法 |
|---|
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register |
| 从类 java.nio.channels.SelectableChannel 继承的方法 |
|---|
register |
| 从类 java.nio.channels.spi.AbstractInterruptibleChannel 继承的方法 |
|---|
begin, close, end, isOpen |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 从接口 java.nio.channels.Channel 继承的方法 |
|---|
close, isOpen |
| 构造方法详细信息 |
|---|
ServerSocketChannel
protected ServerSocketChannel(SelectorProvider provider)
- 初始化此类的一个新实例。
| 方法详细信息 |
|---|
open
public static ServerSocketChannel open()
throws IOException
- 打开服务器套接字通道。
通过调用系统级默认 SelectorProvider 对象的 openServerSocketChannel 方法来创建新的通道。
新通道的套接字最初是未绑定的;可以接受连接之前,必须通过它的某个套接字的 bind 方法将其绑定到具体的地址。
-
- 返回:
- 新的套接字通道
- 抛出:
IOException- 如果发生 I/O 错误
validOps
public final int validOps()
- 返回一个操作集,标识此通道所支持的操作。
服务器套接字通道仅支持接受新的连接,所以此方法返回 SelectionKey.OP_ACCEPT。
-
- 指定者:
- 类
SelectableChannel中的validOps
-
- 返回:
- 有效操作集
socket
public abstract ServerSocket socket()
- 获取与此通道关联的服务器套接字。
返回的对象不会声明任何在 ServerSocket 类中未声明的公共方法。
-
- 返回:
- 与此通道关联的服务器套接字
accept
public abstract SocketChannel accept()
throws IOException
- 接受到此通道套接字的连接。
如果此通道处于非阻塞模式,那么在不存在挂起的连接时,此方法将直接返回 null。否则,在新的连接可用或者发生 I/O 错误之前会无限期地阻塞它。
不管此通道的阻塞模式如何,此方法返回的套接字通道(如果有)将处于阻塞模式。
此方法执行的安全检查与 ServerSocket 类的 accept 方法执行的安全检查完全相同。也就是说,如果已安装了安全管理器,则对于每个新的连接,此方法都会验证安全管理器的 checkAccept 方法是否允许使用该连接的远程端点的地址和端口号。
-
- 返回:
- 用于新连接的套接字通道,或者如果此通道处于非阻塞模式并且没有要接受的可用连接,则返回 null
- 抛出:
ClosedChannelException- 如果此通道已关闭AsynchronousCloseException- 如果正在进行接受操作时另一个线程关闭了此通道ClosedByInterruptException- 如果正在进行接受操作时另一个线程中断了当前线程,因此关闭了该通道并将当前线程的状态设置为中断NotYetBoundException- 如果尚未绑定此通道的套接字SecurityException- 如果已安装安全管理器并且它不允许对新连接的远程端点进行访问IOException- 如果发生其他 I/O 错误
ServerSocketChannel API用法的更多相关文章
- Hadoop生态圈-zookeeper的API用法详解
Hadoop生态圈-zookeeper的API用法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.测试前准备 1>.开启集群 [yinzhengjie@s101 ~] ...
- JavaEE基础(02):Servlet核心API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.核心API简介 1.Servlet执行流程 Servlet是JavaWeb的三大组件之一(Servlet.Filter.Listener) ...
- <自动化测试>之<selenium API 用法2>
不知道之前的selenium API 用法1,有没有去练习, 个人认为线性代码还是要靠敲的, 后面的模块化除了多敲还需要一定的编程思想去理解, 今天下午不是很忙就给来这儿补充点selenium api ...
- TensorFlow Keras API用法
TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...
- FFmpeg原始帧处理-滤镜API用法详解
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10429145.html 在FFmpeg中,滤镜(filter)处理的是未压缩的原始音视频 ...
- Elasticsearch批量操作API用法介绍
Elasticsearch的Bulk API允许批量提交index和delete请求,有如下两种用法: 用法1 BulkRequestBuilder requestBuilder = client.p ...
- Java基础篇(04):日期与时间API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.时间和日期 在系统开发中,日期与时间作为重要的业务因素,起到十分关键的作用,例如同一个时间节点下的数据生成,基于时间范围的各种数据统计和分 ...
- 百度地图API用法(传地址)
网上找了很多都是没用的,非动态用法,最后在官网论坛才问到的 现在来一步一步教大家用 1 这是地址: http://developer.baidu.com/map/ 选择web开发 先获取密钥 ...
- cdnbest的proxy里api用法案例:
用户的proxy帐号里api key要设置好,那个key设置后是不显示的,但会显示已设置 key是自已随便生成的 $uid = 22222; $skey = 'langansafe&*#'; ...
随机推荐
- Web前端开发实战4:导航菜单(一)
在前面的博文中我们提到横向一级菜单,这里我们来看看导航菜单. 导航菜单种类非常多,可是制作原理都是大同 小异的.这里看的比二级下拉式菜单还简单. 来看一些站点上的导航菜单: 垂直导航菜单: 水平导航菜 ...
- 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁
这篇讲讲ReentrantReadWriteLock可重入读写锁,它不仅是读写锁的实现,而且支持可重入性. 聊聊高并发(十五)实现一个简单的读-写锁(共享-排他锁) 这篇讲了怎样模拟一个读写锁. 可重 ...
- windows下硬盘安装debian
windows下硬盘安装debian 此方法在 windows8.1 + debian8.7.1 可用 配置系统安装镜像 1 在windows下格式化一个fat32的分区 2 把下载的debian-7 ...
- java中异常的限制
子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类.如果父类抛出多个异常,那么子类只能抛出父类异常的子集.简单说:子类覆盖父类只能抛出父 ...
- chocolatey 的安装与安装过程中的注意事项
安装的windows需求 Windows 7+ / Windows Server 2003+ PowerShell v2+ .NET Framework 4+ 注意:chocolatey的网站可能 ...
- 洛谷 P1334 瑞瑞的木板
P1334 瑞瑞的木板 题目描述 瑞瑞想要亲自修复在他的一个小牧场周围的围栏.他测量栅栏并发现他需要N(1≤N≤20,000)根木板,每根的长度为整数Li(1≤Li≤50,000).于是,他神奇地买了 ...
- C++ 指针与引用 知识点 小结
[摘要] 指针能够指向变量.数组.字符串.函数.甚至结构体.即指针能够指向不同数据对象.指针问题 包含 常量指针.数组指针.函数指针.this指针.指针传值.指向指针的指针 等. 主要知识点包含:1. ...
- Flask项目之手机端租房网站的实战开发(九)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...
- 【Codeforces Round #429 (Div. 1) B】Leha and another game about graph
[链接]点击打开链接 [题意] 给出一个连通图,并给每个点赋一个d值0或1或-1,要求选出一个边的集合,使得所有的点i要么d[i] == -1,要么 dgree[i] % 2 == d[i],dgr ...
- sql sever 跨库查询
reconfigure reconfigure select * from openrowset( 'SQLOLEDB', '192.168.1.180'; 'sa'; '123.com',joybl ...
java.nio.channels.spi.AbstractInterruptibleChannel