`

转 mina 遇到的问题

    博客分类:
  • mina
阅读更多

    转:http://littcai.iteye.com/blog/227476

 

  • Socket服务器在启动是检测到端口被绑定的话会抛出java.net.BindException:Address already in use: JVM_Bind;而MINA不会
  • 客户端在调用connect方法时,如果连接主机或端口失败,并不会抛出任何异常,跟踪MINA源码可知,实际调用的是AbstractPollingIoConnector类的connect0方法,该方法在发生连接异常时创建了一个failedFuture并返回。只有在客户端实际调用connFuture.getSession();时才会抛出RuntimeIoException异常。
    • 在断网(即网络不通)的情况下,抛出java.net.NoRouteToHostException: No route to host
    • 如果连接不到主机或端口并且设置了中断等待时间的情况下,抛出java.net.ConnectException: Connection refused
    • 如果连接不到主机或端口并且未设置了中断等待时间的情况下,不抛出异常,此时获得的session为NULL
    • 如果能连接到主机对应端口,但是未设置awaitUninterruptibly();此时获得的session也为NULL
Java代码  收藏代码
  1. ConnectFuture connFuture = connector.connect(new InetSocketAddress("192.168.0.1"12315));//发生连接异常时该行不会抛异常  
  2. connFuture.awaitUninterruptibly(1000);//如果不加这句,则连接异常时getSession()并不会抛异常,获得的SESSION为NULL  
  3. IoSession session = connFuture.getSession();//取SESSION的时候才抛异常    

 

 未解之谜

MINA的连接是长连接,这在服务器或客户端通讯中断exceptionCaught能捕获异常可以知道。我们也就不需要对客户端长连接再做心跳包的处理。不过不明白connector.setConnectTimeout(1);这个方法到底有什么作用???

 

  IDLE

1.1.7版本中,session可以直接设置idle时间;

2.0中需要如下代码设置idle时间:session.getConfig().setBothIdleTime(5);

分享到:
评论

相关推荐

    Mina TCP长连接服务与UDP服务

    当我遇到问题没法解决的时候,我深深的知道了贡献是多么重要。哈哈哈哈。大笑 客户端为sockect 服务端为mina 本地环境内网已测通。 测试环境为内网连接公网,公网连接公网可通。 如果测试不通 1.请检查端口服务...

    通信规约和mina通信程序

    通信规约和mina通信程序文档,有可能在学校遇到类似的作业可以参考一下

    herald-discussion-room-mina:「小猴答疑室」微信小程序

    Node.js 环境微信开发者工具(bug很多,注意保持更新)一个得心应手的文本编辑工具(不要用微信开发者工具当编辑器)安装 wepy在终端中执行:npm install wepy-cli -g如果安装遇到问题请参考 wepy 官方文档:补全...

    微信小程序开发遇到的那些坑

    小程序提供了一个框架,微信称之为“MINA”,这个框架主要分两个层面,视图层和逻辑层。框架的核心是一个响应的数据绑定系统。WXML中的动态数据均来自对应Page的data,这个数据绑定是单向的,只有数据发生变化,视图...

    文字识别解读小程序-包含代码-文档-演示视频.zip

    在人们的日常生活工作中,经常会遇到某个不认识的字或不熟悉的词,或不理解语义或不知道发音。传统字典由于不好携带、使用不方便,对人们的生活造成困扰。为解决这一问题,基于小程序开发设计一款智能文字识别查询小...

    Android开发中Eclipse报错及对应处理方法总结

    本文较为详细的总结了Android...小结:以后遇到这种报错时,记得提醒自己可能是由于自己导错包了。 附: 网上其他处理方法:《丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决方法》

    解决调试腾讯云微信小程序Demo错误“登录失败:调用鉴权服务失败#40029_WEIXIN

    此文章解决大家遇到可恶的“登录失败:调用鉴权服务失败#40029的问题”~~   (此图片来源于网络,如有侵权,请联系删除! )  很多人出现上面的问题,那是因为:如果在购买解决方案时,把AppId 和 AppSecret 填写错误...

    爱迪菲

    如果遇到种子问题,请使用bin/rails db:seed再次运行它们。 要运行测试,请使用RAILS_ENV=test rails db:drop db:create db:migrate来准备数据库(因为每次运行时都要清理DB,所以只需一次),然后执行这两个命令...

    上海电机学院C语言实训答案

     遇到的问题及解决方法分析  实训小结 4. 程序运行方式 构建一个简易菜单,形如: 用户通过输入数值选择所需运行的子程序,当一个子程序运行结束后回到菜单界面,直至用户输入0后退出程序。 5.实训选题 每人...

    详解使用mpvue开发github小程序总结

    现在总结一下遇到的坑。 扫码体验、 项目地址:https://github.com/cheesekun/wx-github mina坑 scroll-view 高度 可滚动视图区域。 使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。 小程序提供的...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    Java Swing 扁平化的聊天程序源码

    这是我对原来山寨QQ的进一步改进,其实功能什么的都好多还没实现,改进主要是在工作中遇到的一些经验应用到其中,所以主要的改进在代码上,模块之间的耦合度,程序的层次更明显等改进,由于工作没啥业余时间,暂时就...

    Android Studio升级到3.0 Terminal 中文显示异常解决

    遇到这个问题的话应该是平时终端用的是zsh造成的,如果不是的话,那我也没办法,至少我是这么解决的,希望也可以帮到你。 具体Bug如下所示 内心有一万匹草泥马呼啸而过,捣豉了很久,最终在某群中问了下得到了答案...

    java开源包1

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包11

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包2

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包3

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包6

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

Global site tag (gtag.js) - Google Analytics