java.nio.channels
类 ServerSocketChannel

java.lang.Objectjava.nio.channels.spi.AbstractInterruptibleChanneljava.nio.channels.SelectableChanneljava.nio.channels.spi.AbstractSelectableChanneljava.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类似用法

  • Android下的ServerSocketChannel使用方法和示例

ServerSocketChannel API用法相关推荐

  1. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

  2. CompletableFuture API用法介绍(二)

    文章目录 一.纯消费 API 1.thenAccep 2.thenAcceptBoth 3.runAfterBoth 4.thenRun(Runnable action) 二.组合API 1.then ...

  3. CompletableFuture API用法介绍(一)

    文章目录 一.前言 二.CompletableFuture 1.主动完成计算 2.创建异步任务 3.计算完成时对结果的处理 whenComplete/exceptionally/handle 4.结果 ...

  4. JavaEE基础(02):Servlet核心API用法详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.核心API简介 1.Servlet执行流程 Servlet是JavaWeb的三大组件之一(Servlet.Filter.Listener) ...

  5. TensorRT C++ API用法

    TensorRT C++ API用法 文章目录 TensorRT C++ API用法 1.C++ API vs Python API 2.C++实例TensorRT对象 参考 1.C++ API vs ...

  6. Jinja2安装与基本API用法

    文章目录 简介 前提条件 安装 基本API用法 API 基础 Unicode 高级API 参考文档 简介 Jinja2是用于Python的库,旨在灵活,快速且安全地运行. 前提条件 Jinja2适用于 ...

  7. php 调用微信收货地址,php微信自动获取收货地址api用法实例详解

    这篇文章主要介绍了php版微信自动获取收货地址api用法,结合实例形式分析了php版微信API接口调用与使用技巧,需要的朋友可以参考下 微信公众平台现在是越来越强大了,我们可以通过各种api接口来与平 ...

  8. Unity编辑器AssetDatabase函数API用法中文详解-Chinar教程

    Chinar blog :www.chinar.xin AssetDatabase 函数用法汇总 本文提供全流程,中文翻译 助力快速理解 AssetDatabase API 用法 为初学者节省宝贵的时 ...

  9. Junit和Junit.Jupiter.api用法区别

    Junit和Junit.Jupiter.api用法区别写在了文章的总结处,这里先简单的介绍一下Junit用法. Junit 5 = Junit Platform + Junit Jupiter + J ...

最新文章

  1. MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...
  2. jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...
  3. 5g pdu session_运营商下架4G套餐,用户被5G!
  4. mysql rand() 子查询_MySQL ------ 子查询(十三)
  5. python显示no matching distribution,Python使用pip安装No matching distribution found for PyYaml==5.3.1...
  6. H.264的编解码流程
  7. LINUX也有C#?
  8. 服务器美萍管理系统,美萍服装管理软件互联网版(Web会员管理软件、连锁店会员卡管理系统、B/S版连锁会员管理系统)...
  9. echart实现中国地图,点击可以显示各省信息
  10. xposed+justTrustMe在逍遥模拟器上的安装配置
  11. 共享硬盘没有权限访问计算机,Win7系统打开磁盘共享说“没有访问权限
  12. 内存超频trfc_就是这么的简单,微星主板内存超频分享
  13. js判断指定日期是礼拜几
  14. BLOCKCHAINS VS. DISTRIBUTED DATABASES: DICHOTOMYAND FUSION
  15. c语言scandf用法,scan的用法总结大全
  16. 分类:决策树——剪枝
  17. C语言的scanf函数在visualstudio中的错误
  18. 放不下的原理_想要彻底忘记一个人,明白“洛克定律”的真实原理就可以
  19. win7下设置 WiFi AP
  20. SDNUOJ 1168.FBI树

热门文章

  1. python学习实例(5)
  2. 第二次作业 讲解及展示
  3. C++:45---多态
  4. (一)nodejs循序渐进-nodejs环境安装(基础篇)
  5. NLP复习资料(1)-绪论、数学基础
  6. 剑指offer(刷题21-30)--c++,Python版本
  7. ubuntu修改字体 样式
  8. C语言const关键字—也许该被替换为readolny
  9. H.264/AVC技术进展及其务实发展策略思考
  10. 不要再问我跨域的问题了