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类似用法

时间: 2024-12-17 03:09:46

ServerSocketChannel API用法的相关文章

HTML5 Canvas八大核心技术及其API用法

什么是canvas? Canvas元素是HTML5的一部分,允许脚本语言动态渲染 位图像.Canvas由一个可绘制区域HTML代码中的属性定义高度和宽度(注:用其属性width和height设置宽度和高度时不能跟像素单位 “px”).JavaScript代码可访问该区域,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas八大核心技术(3D3R公司创始人兼CEO Ohad Eder-Pressman的独到见解): 1.游戏 HTML5在基于Web的图像显示方面比F

Java操作mongoDB2.6的常见API用法

对于mongoDB而言,学习方式和学习关系型数据库差不太多 开始都是学习如何insert.find.update.remove,然后就是分页.排序.索引,再接着就是主从复制.副本集.分片等等 最后就是通过它提供的各个驱动(比如Java.PHP.node.js等等)来练习所谓的高级用法 另外:相对于Oracle有PLSQL Developer,MySQL有HeidiSQL mongoDB也不例外,它的图形化工具中有一款叫做mongoVUE的,我用的是1.5.3破解版(不是每15天就得改一次注册表的

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

摘自:https://www.cnblogs.com/cicada-smile/p/12020195.html 本文源码:GitHub·点这里 || GitEE·点这里 一.核心API简介 1.Servlet执行流程 Servlet是JavaWeb的三大组件之一(Servlet.Filter.Listener),它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:接收请求数据:处理请求:完成响应. 2.核心API简介 API

Android Preference API 用法--ListPreference(一)

一.ListPreference简介 我们都只知道SharedPreference非常适合于参数设置功能,在此处的preference 也是代表SharedPreference的意思,在SharedPreference中,我们可以迅速的将某些值保存进xml文件中,然后我们可以读取这些设置信息进行相应的操作. 为了简化与preference相关的应用开发,android为我们提供了一系列的api来帮助我们.主要有 PreferenceActivity,CheckBoxPreference,Edit

Elasticsearch批量操作API用法介绍

Elasticsearch的Bulk API允许批量提交index和delete请求,有如下两种用法: 用法1 BulkRequestBuilder requestBuilder = client.prepareBulk(); for(Person person : personList){ String obj = getIndexDataFromHotspotData(person); if(obj != null){ requestBuilder.add(client.prepareInd

Java 8新特性stream API用法总结

前言 Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念.它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream.Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利.高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data

SelectionKey API 用法

java.nio.channels 类 SelectionKey java.lang.Object java.nio.channels.SelectionKey 直接已知子类: AbstractSelectionKey public abstract class SelectionKeyextends Object 表示 SelectableChannel 在 Selector 中的注册的标记. 每次向选择器注册通道时就会创建一个选择键.通过调用某个键的 cancel 方法.关闭其通道,或者通过

res.api用法说明

# res.api res.api is an express middleware for render json api , it convention over api format like this : { data: { }, status: { code : x, msg : 'some message' } } more see at [cnodejs 客户端 API 开发总结](https://cnodejs.org/topic/552b3b9382388cec50cf6d95

SelectableChannel API 用法

java.nio.channels 类 SelectableChannel java.lang.Object java.nio.channels.spi.AbstractInterruptibleChannel java.nio.channels.SelectableChannel 所有已实现的接口: Closeable, Channel, InterruptibleChannel 直接已知子类: AbstractSelectableChannel public abstract class S