ServerSocketChannel API用法
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用法相关推荐
- TensorFlow Keras API用法
TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...
- CompletableFuture API用法介绍(二)
文章目录 一.纯消费 API 1.thenAccep 2.thenAcceptBoth 3.runAfterBoth 4.thenRun(Runnable action) 二.组合API 1.then ...
- CompletableFuture API用法介绍(一)
文章目录 一.前言 二.CompletableFuture 1.主动完成计算 2.创建异步任务 3.计算完成时对结果的处理 whenComplete/exceptionally/handle 4.结果 ...
- JavaEE基础(02):Servlet核心API用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.核心API简介 1.Servlet执行流程 Servlet是JavaWeb的三大组件之一(Servlet.Filter.Listener) ...
- TensorRT C++ API用法
TensorRT C++ API用法 文章目录 TensorRT C++ API用法 1.C++ API vs Python API 2.C++实例TensorRT对象 参考 1.C++ API vs ...
- Jinja2安装与基本API用法
文章目录 简介 前提条件 安装 基本API用法 API 基础 Unicode 高级API 参考文档 简介 Jinja2是用于Python的库,旨在灵活,快速且安全地运行. 前提条件 Jinja2适用于 ...
- php 调用微信收货地址,php微信自动获取收货地址api用法实例详解
这篇文章主要介绍了php版微信自动获取收货地址api用法,结合实例形式分析了php版微信API接口调用与使用技巧,需要的朋友可以参考下 微信公众平台现在是越来越强大了,我们可以通过各种api接口来与平 ...
- Unity编辑器AssetDatabase函数API用法中文详解-Chinar教程
Chinar blog :www.chinar.xin AssetDatabase 函数用法汇总 本文提供全流程,中文翻译 助力快速理解 AssetDatabase API 用法 为初学者节省宝贵的时 ...
- Junit和Junit.Jupiter.api用法区别
Junit和Junit.Jupiter.api用法区别写在了文章的总结处,这里先简单的介绍一下Junit用法. Junit 5 = Junit Platform + Junit Jupiter + J ...
最新文章
- MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...
- jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...
- 5g pdu session_运营商下架4G套餐,用户被5G!
- mysql rand() 子查询_MySQL ------ 子查询(十三)
- python显示no matching distribution,Python使用pip安装No matching distribution found for PyYaml==5.3.1...
- H.264的编解码流程
- LINUX也有C#?
- 服务器美萍管理系统,美萍服装管理软件互联网版(Web会员管理软件、连锁店会员卡管理系统、B/S版连锁会员管理系统)...
- echart实现中国地图,点击可以显示各省信息
- xposed+justTrustMe在逍遥模拟器上的安装配置
- 共享硬盘没有权限访问计算机,Win7系统打开磁盘共享说“没有访问权限
- 内存超频trfc_就是这么的简单,微星主板内存超频分享
- js判断指定日期是礼拜几
- BLOCKCHAINS VS. DISTRIBUTED DATABASES: DICHOTOMYAND FUSION
- c语言scandf用法,scan的用法总结大全
- 分类:决策树——剪枝
- C语言的scanf函数在visualstudio中的错误
- 放不下的原理_想要彻底忘记一个人,明白“洛克定律”的真实原理就可以
- win7下设置 WiFi AP
- SDNUOJ 1168.FBI树