1.ServerSocketChannel和SocketChannel必须配置成非阻塞的;
2.每次轮询后,得到SelectionKey后,必须从选择集里remove掉
Iterator<SelectionKey> keys = selector.selectedKeys().iterator();
while (keys.hasNext()) {
SelectionKey key = keys.next();
keys.remove();
//...其他处理
}
3.如果在客户端也配置了Selector,如:
SocketChannel sc = SocketChannel.open();
Selector selector = Selector.open();
sc.configureBlocking(false);
sc.connect(new InetSocketAddress("localhost", 7777));
sc.register(selector, SelectionKey.OP_CONNECT);
在建立连接时,需要调用finishConnect方法,如:
Iterator<SelectionKey> keys = selector.selectedKeys()
.iterator();
while (keys.hasNext()) {
SelectionKey key = keys.next();
keys.remove();
if (key.isConnectable()) {
SocketChannel socketChannel = (SocketChannel) key.channel();
// Finish the connection. If the connection operation failed
// this will raise an IOException.
try {
socketChannel.finishConnect();
} catch (IOException e) {
// Cancel the channel's registration with our selector
System.out.println(e);
return;
}
System.out.println("Connected...");
key.interestOps(SelectionKey.OP_READ);
}
}
分享到:
相关推荐
testcafe-react-selectors, 用于响应应用的TestCafe选择器扩展 testcafe-react-selectors这个插件提供了选择器扩展,使得使用 TestCafe 测试ReactJS组件变得更容易。 这些扩展允许你以React的方式选择页面元素。安装...
Css Selectors Cheatsheet
使用socket 阻塞通讯时,当程序调用recv() 方法从socket 中读取数据时,如果没有读取到数据时,当前线程将会被阻塞,因此为了解决这个问题采用了多线程的方式,制约了服务器高并发的访问。 selectors 模块允许socket...
本系列文章主要讲述jQuery框架的选择器(Selectors)使用方法,我将以实例方式进行讲述,以简单,全面为基础,不会涉及很深,我的学习方法:先入门,后进阶!
postcss-icss-selectors, 用于本地范围类和id的css模块的PostCSS插件 postcss-icss-selectors 用于本地范围类和id的css模块的PostCSS插件用法postcss([ require('postcss-icss-selectors')(options) ])有关环
jQuery Selectors Refcard
需要配合firefox3.5或以上版本使用,属于firefox的一个插件,能够检测当前页面调用的CSSwenjian中,哪些被使用,那些为使用
list-selectors 可以列出你在 CSS 使用的 selector,它可作为一个独立的函数,CLI, 或者 PostCSS 插件。使用示例:var listSelectors = require('list-selectors'); listSelectors( ['style/**/*.css', '!...
jQuery-Selectors-源码.rar
selectors 模块 它的功能与 linux 的 epoll,还是 select 模块, poll 等类似; 实现高效的 I/O multiplexing , 常用于非阻塞的 socket 的编程中
This concise guide demonstrates the power and simplicity of CSS selectors for applying style rules to different web page elements. You’ll learn how your page’s presentation depends on a multitude ...
npm install --save-dev postcss postcss-combine-duplicated-selectors# oryarn add --dev postcss postcss-combine-duplicated-selectors使用PostCSS JS API 'use strict' ;const fs = require ( 'fs' ) ;const ...
[HTML][CSS][中文][初學]_02._選擇器(Selectors)
主要介绍了Python select及selectors模块概念用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
grunt-shrink-selectors CSS 重命名工具 入门 这个插件需要 Grunt ~0.4.5 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何创建以及安装和使用Grunt插件。 熟悉该过程后,可以使用以下命令安装此插件...
一组与使用的通用 CSS 自定义选择器( ) 安装 $ npm install custom-selectors 示例, : --universal { box-sizing : border-box; } . Post : --headings { font-weight : 600 ; } . Button : --hover-focus-...
这个插件提供了选择器扩展,使使用测试ReactJS组件变得更加容易。 这些扩展允许您以React固有的方式选择页面元素。 安装 $ npm install testcafe-react-selectors 用法 等待应用程序准备运行测试 要等到React的组件...
——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!
当我第一次接近这个任务时,我不知道如何完成它,之前只使用 JQuery 作为选择器。 最初我只是试图通过几个测试,然后意识到要以稳健的方式通过后面的测试,我必须以某种方式解析输入并一个一个地构建元素 - 这是我...
HtmlAgilityPack.CssSelectors.NetCore· 使用的NetStandard版本 安装 Install-Package HtmlAgilityPack.CssSelectors.NetCore 用法 var doc = new HtmlAgilityPack . HtmlDocument (); doc . Load ( new ...