- 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
ConnectFuture connFuture = connector.connect(new InetSocketAddress("192.168.0.1", 12315));//发生连接异常时该行不会抛异常
connFuture.awaitUninterruptibly(1000);//如果不加这句,则连接异常时getSession()并不会抛异常,获得的SESSION为NULL
IoSession session = connFuture.getSession();//取SESSION的时候才抛异常
未解之谜
MINA的连接是长连接,这在服务器或客户端通讯中断exceptionCaught能捕获异常可以知道。我们也就不需要对客户端长连接再做心跳包的处理。不过不明白connector.setConnectTimeout(1);这个方法到底有什么作用???
IDLE
1.1.7版本中,session可以直接设置idle时间;
2.0中需要如下代码设置idle时间:session.getConfig().setBothIdleTime(5);
分享到:
相关推荐
在实际的Mina开发中,通常会遇到以下知识点: 1. **服务端配置**:创建一个Mina服务端,需要定义一个ProtocolCodecFactory,它负责将数据在字节流和对象之间进行编码和解码。然后,创建一个Acceptor,如...
本教程将深入探讨如何在Android项目中集成MINA框架,以及如何解决在实际开发中可能遇到的问题,如中文乱码和消息接收不全等问题。 1. **MINA框架基础** - MINA的核心是其异步事件驱动模型,它允许开发者通过回调...
- **调试技巧**:提供了调试Mina应用程序的一些建议和技巧,帮助开发者解决实际开发过程中遇到的问题。 #### Chapter 14 - StateMachine(状态机) - **状态机设计**:介绍了如何利用状态机模式优化Mina应用程序的...
mina_optimize压缩包中的代码示例,可能包含了客户端和服务端的实现,它们演示了如何配置和使用Mina来避免断包和粘包问题。服务端可能实现了监听特定端口,接收客户端连接,并使用自定义解码器处理接收到的数据。...
同时,MINA社区提供了丰富的文档和示例代码,可以帮助开发者快速上手并解决遇到的问题。 总的来说,Apache MINA 2.0.0-RC1是一个强大的网络应用开发工具,结合了SLF4J这样的日志框架,为开发者提供了便利和高效的...
在实际使用中,我们需要关注中文乱码问题的解决、保持Socket连接的稳定性和可靠性,以及如何在Android Studio环境中有效地整合和管理MINA框架。通过不断实践和学习,我们可以充分利用MINA的强大功能,提升Android...
8. **社区支持**:MINA作为一个成熟的开源项目,拥有活跃的社区和丰富的文档,遇到问题时可以获得及时的帮助。 9. **安全性**:MINA可以与其他安全库(如SSL/TLS)集成,确保数据在传输过程中的安全性。 10. **...
mina是一个Java开发的网络通信框架,广泛应用于TCP和UDP协议的服务器和客户端开发。在mina框架中,编解码器(Codec)扮演着至关重要的角色,它负责将应用层的数据转换为网络传输的字节流,以及将接收到的字节流还原...
在IT行业中,网络通信是不可或缺的一部分,而Apache MINA(Model-Independent Network Application Framework)是一个高性能、异步的网络应用程序框架,广泛应用于TCP/IP和UDP协议的开发。当我们遇到"MINA断线重连...
6. **社区支持**:作为Apache软件基金会的项目,Mina拥有活跃的开发者社区,提供了持续的更新和支持,用户可以在遇到问题时寻求社区的帮助。 7. **跨平台性**:由于基于Java开发,Apache Mina Server 2.0可以在任何...
在Android开发中,Mina可以帮助开发者轻松地处理TCP/IP和UDP/IP通信,尤其适用于实现长连接和断线重连功能。下面将详细介绍Mina框架在Android中的应用及其核心概念。 1. **Mina框架基础** Mina源于Java平台,但在...
文档还可能包含详细的API参考,示例代码,以及常见问题解答,以帮助开发者快速上手并解决遇到的问题。 MINA广泛应用于各种网络应用,例如聊天服务器、游戏服务器、数据传输服务等。通过深入理解MINA框架,开发者...
同时,这些示例也提供了实际操作的机会,便于开发者在遇到问题时进行调试和改进。 通过深入研究这些示例,开发者不仅可以掌握Mina的基本用法,还能了解到如何利用其高级特性优化网络应用,提升系统性能。对于希望...
在Android开发过程中,有时我们需要利用网络通信框架进行服务器与客户端之间的数据交互,Mina就是其中的一个优秀选择。本文将深入探讨在Android 2.2版本上集成Mina框架时可能出现的问题,以及如何找到这些问题的完美...
在Java开发中,Mina(Java Minimal Asynchronous Network Engine)是一个强大的网络编程框架,用于构建高性能、高可用性的网络应用程序,如服务器。本实例主要关注的是Mina在处理网络通信时遇到的两个常见问题——...
3. Bug修复:了解已修复的错误,避免在开发过程中遇到类似问题。 4. 示例代码:通过文档中的示例,了解如何正确使用MINA框架编写网络应用。 5. 迁移指南:如果从旧版本升级,了解API的变化和迁移步骤,确保代码的...
7. **完善的文档与社区支持**:MINA2有详细的用户手册和开发者指南,以及活跃的社区支持,帮助开发者解决在实际开发中遇到的问题。 结合“资料_MINA(第三部分)”这个文件,我们可以深入学习MINA2的高级用法、优化...
在实际应用中,如果遇到“down”问题,可能涉及网络中断、资源耗尽或代码错误,需要进行故障排查,检查日志、网络连接和代码逻辑。 5. **mina_apache_down**和**mina_tcp**标签:这些标签可能是为了标记与Apache ...
10. **博客链接中的具体问题**:虽然没有提供具体描述,但通常博主会在文章中详细描述遇到的问题及解决方案。访问给定的博客链接(https://donald-draper.iteye.com/blog/2375487)可以获取更详细的解决步骤。 综上...
MINA(Java Multicast Network Application Framework)是Apache软件基金会开发的一个网络应用框架,主要用于构建高性能、高可用性的网络服务器。这个框架提供了丰富的网络通信API,支持多种协议,如TCP/IP、UDP/IP...