当前位置: 首页 > news >正文

java.nio.channels.IllegalBlockingModeException

java.nio.channels.IllegalBlockingModeException 

相关错误代码:
[java]  view plain  copy
  1.     class Handler {  
  2.         public Handler(Selector selector, SocketChannel socketChannel) throws InterruptedException {  
  3.             try {  
  4.                 SelectionKey key = socketChannel.register(selector, SelectionKey.OP_READ);  
  5.             } catch (IOException e) {  
  6.                 // TODO Auto-generated catch block  
  7.                 e.printStackTrace();  
  8.             }  
  9. //          while (true) {  
  10. //              System.out.println("Handler");  
  11. //              Thread.sleep(1000);  
  12. //          }  
  13.               
  14.             socketChannelMap.put(socketChannel.hashCode(), socketChannel);  
  15.               
  16.             System.out.println("Handler end" + socketChannel.hashCode() + "," + socketChannelMap.size());  
  17.         }  
  18.     }  
发生错误语句:
[java]  view plain  copy
  1. SelectionKey key = socketChannel.register(selector, SelectionKey.OP_READ);  
错误原因:
必须设置通道为 非阻塞,才能向 Selector 注册。
解决方法:
在发生错误的语句前添加:
[java]  view plain  copy
  1. socketChannel.configureBlocking(false);  
注意参数值,false 为 非阻塞,true 为 阻塞。

相关文章:

  • Eclipse在线更新慢
  • 【杂谈】小记一个ios11的bug
  • libgdx游戏引擎教程
  • android用户界面之WebView教程实例汇总
  • [译] 为多个品牌和应用构建 React 组件
  • 高级软件工程第三次结对作业
  • Sequelize 中文文档 v4 - Getting started - 入门
  • crontab命令详解 含启动/重启/停止
  • ios开发学习--选项卡(Tab Bar) 效果源码分享--系列教程
  • MySQL几个简单SQL的优化
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • C++常用代码优化策略
  • 数据库的备份与恢复
  • mybatis的mapper的代理学习
  • R语言学习笔记(二)导入数据
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CentOS从零开始部署Nodejs项目
  • exif信息对照
  • GitUp, 你不可错过的秀外慧中的git工具
  • GraphQL学习过程应该是这样的
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • React 快速上手 - 07 前端路由 react-router
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 翻译--Thinking in React
  • 飞驰在Mesos的涡轮引擎上
  • 复习Javascript专题(四):js中的深浅拷贝
  • 技术发展面试
  • 马上搞懂 GeoJSON
  • 面试总结JavaScript篇
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 用Visual Studio开发以太坊智能合约
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #预处理和函数的对比以及条件编译
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)学习JVM —— 垃圾回收机制
  • (转)linux 命令大全
  • (转载)hibernate缓存
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 使用配置文件
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET处理HTTP请求
  • .NET连接MongoDB数据库实例教程
  • .NET企业级应用架构设计系列之技术选型
  • .Net中间语言BeforeFieldInit
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @RestController注解的使用
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [C#][opencvsharp]opencvsharp sift和surf特征点匹配
  • [C#]扩展方法
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [Firefly-Linux] RK3568修改控制台DEBUG为普通串口UART
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误