问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java mina 数据发送前怎样判断连接状态

发布网友 发布时间:2022-10-01 03:08

我来回答

1个回答

热心网友 时间:2024-03-27 02:33

1 Mina基本开发知识
1.1 非阻塞模式

Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源(传统socket通讯服务器设计模式)的。
Java NIO非堵塞技术实际是采取Reactor模式,或者说是Observer模式为我们监察I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写,不堵塞了。
Java NIO出现不只是一个技术性能的提高,你会发现网络上到处在介绍它,因为它具有里程碑意义,从JDK1.4开始,Java开始提高性能相关的功能,从而使得Java在底层或者并行分布式计算等操作上已经可以和C或Perl等语言并驾齐驱。
如果你至今还是在怀疑Java的性能,说明你的思想和观念已经完全落伍了,Java一两年就应该用新的名词来定义。从JDK1.5开始又要提供关于线程、并发等新性能的支持,Java应用在游戏等适时领域方面的机会已经成熟,Java在稳定自己中间件地位后,开始蚕食传统C的领域。
NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有事件发生时,他会通知我们,传回一组SelectionKey,我们读取这些Key,就会获得我们刚刚注册过的socketchannel,然后,我们从这个Channel中读取数据,放心,包准能够读到,接着我们可以处理这些数据。  Selector内部原理实际是在做一个对所注册的channel的轮询访问,不断的轮询(目前就这一个算法),一旦轮询到一个channel有所注册的事情发生,比如数据来了,他就会站起来报告,交出一把钥匙,让我们通过这把钥匙(SelectionKey表示 SelectableChannel 在 Selector 中的注册的标记。 )来读取这个channel的内容.

1.2 什么是mian
现在已经是World Wide Web的时代,无数的web应用框架被创造出来从而大大的提高了web开发的速度。抛开WWW的这个优势,我们知道还有很多协议是HTTP协议所无法替代的。有时,我们仍然需要构造c/s应用来实现适当的协议。
你有没有曾经使用java或者其他语言实现过某个协议栈?就像你所经历过的那样,编写网络应用即使对于有经验的开发者也不是容易的事情。这归咎于以下几个方面:
* 没有为开发者设计的合适的网络应用框架.
* 使你无法在有限的时间内创建你的应用.
* 网络I/O编码,消息的编/解码,业务逻辑常常纠缠在一起.
* 使程序失去可维护性和可复用性
* 网络应用难于进行单元测试
* 你失去了敏捷性
MINA是一个网络应用框架,在不牺牲性能和可扩展性的前提下用于解决上面的所有问题。
1.3 几个接口
IoAcceptor执行所有底层IO,将他们翻译成抽象的IO事件,并把翻译
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
把身份证和3000元给教练了,同时他也带我去体检入指纹了!之后没给我 从中国农业大学东校区到北京植物园 有没有人看过小石头小豆子版的<<霸王别姬>>? 我买的iphone4s显示可能是官翻机是不是正品行货? 怎样能看出我新买的iPhone 4S的真伪、。还有我想知道这款手机有没有被... 水货iphone4s想知道是不是假的我看分辨率不像假的但还是不确定哪位好心... 请帮鉴定下这部iphone 4S是真的不? 前段时间老公跟别人发过520.5920.我怀疑老公出轨对我不忠,这么长时间过 ... ...下是不是翻新机,谢谢了。型号md239ch 序例号c3kj920mdtd2 imei... ...给教练帮我报名了因家里情况现在不想去了该怎么办呢?我身份证... javaweb代码学习总结 江南歌词林俊杰 江南歌曲简介 ...是什么意思 怎么理解听君一席话胜读十年书的意思 怎么取消微信密码 如何取消微信密码 大暑发朋友圈文案 大暑节气发圈的文案范例 菠萝的家庭种植方法 菠萝怎么种植 怎么在家种植一棵菠萝最详细教程 菠萝在家怎么种植 菠萝树种植方法 《JavaScriptDOM编程艺术(第2版)》pdf下载在线阅读,求百度网盘云资源... java thread问题 selenium-java-2.39.0与火狐哪个版本兼容 java,JTextPane怎样实现像word文档那样分页的效果 求一个java分页查询的导出插件功能; 菊花的花语和寓意 菊花的象征 我想问问快手资质认证怎么弄 “我十分关注你”用英语怎么说? 快手企业认证怎么申请 博字取名的寓意是什么 博字取名的寓意简述 血糖高的人饮食禁忌 血糖高的人饮食有哪些禁忌 网页编程中如何解决javascript问题? 充电越充越少怎么回事? 带鱼怎样炸好吃 干炸带鱼的烹饪技巧分享 干炸带鱼怎么做好吃又简单 炸带鱼如何做好吃 我想问一下如何数胎动,如何正确数胎动 孕期用数胎动吗,怎么感觉总是在动啊? 双胎数胎动用什么软件 孕24周用数胎动吗?胎动频繁需要吸氧吗 价值1元 同一个充电器、数据线,苹果6越充越少电,而苹果5S就能 南方入伏吃什么 南方的传统入伏食物 动词ed怎么发音 ed后缀的词怎么读 求问ed在动词后读音是什么,要分类,详细点,多谢了。 芒果扦插时间 四川资阳种芒果在几月种最好? 青少年脾气暴躁该怎么办? 青菜怎么放储存时间长一些 青菜如何长时间保存 为何手指尖会有一阵一阵象触电的感觉 如何让学生根据音标记单词 清洁冰箱的方法 清洁冰箱有哪些方法 幼儿园文明礼仪教育活动总结