mina使用心得
1、mina中设置过滤器有先后顺序,如果不按照顺序,mina的服务器段可能会接收一部分数据的现象。
mina设置服务器顺序 eg:
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();//创建一个过滤器链对象
TextLineDecoder txld = new TextLineDecoder(Charset.forName("UTF-8"),new LineDelimiter("\0"));
//创建一个文本行解码器,编码为UTF-8,且行定符合是"\0"
txld.setMaxLineLength(Integer.MAX_VALUE);
TextLineEncoder txed = new TextLineEncoder(Charset.forName("UTF-8"),new LineDelimiter("\0"));
txed.setMaxLineLength(Integer.MAX_VALUE);
TextLineCodecFactory codecFactory = new TextLineCodecFactory();
codecFactory.setDecoderMaxLineLength(1024 * 1024);// 设定后服务器可以接收大数据
chain.addLast("codec", new ProtocolCodecFilter(txed,txld));//过滤器链添加编码解码器
chain.addLast( "Executor", new ExecutorFilter(Executors.newCachedThreadPool()) );
chain.addLast("logging", new LoggingFilter());//这个用于打印日志 可以不写
2、mina设置tcp端口重用(不设置可以重用端口,当你要重启服务器的时候,如果服务器上还有tcp的链接,重启服务器会不成功!)
NioSocketAcceptor acceptor = new NioSocketAcceptor();
acceptor.setReuseAddress(true);//设置可以端口重用
3、mina获取客户端的ip地址
String clientIP = ((InetSocketAddress)session.getRemoteAddress()).getAddress().getHostAddress();
分享到:
相关推荐
在本文中,我们将深入探讨Mina的高级使用,特别是在文件图片传送、文件发送、XML和JSON报文处理方面的实践。 1. **Mina的高级使用** Mina的核心在于其异步事件驱动的模型,这使得它在处理大量并发连接时表现出色。...
2. **Filter Chain**: MINA使用过滤器链模式来处理网络数据。每个过滤器都可以对数据进行处理,如解码、编码、安全检查等,然后将数据传递给下一个过滤器,直到到达最终的目的地。 3. **Handler**: 处理器是用户...
在"mina使用例子"中,我们可以学习到以下关键知识点: 1. **Mina架构**:Mina采用了事件驱动和异步I/O模型,基于Java NIO(非阻塞I/O)库。它的核心组件包括Acceptor(监听器)、Session(会话)和Filter(过滤器)...
《MINA使用札记——CumulativeProtocolDecoder使用详解》 MINA(Java Multithreaded Network Application Framework)是一个强大的、高性能的Java网络应用框架,它主要用于构建可伸缩的、高性能的服务端应用,如...
5. **Executor**:Mina使用Executor服务来管理和调度任务,确保异步操作的执行。 6. **Transport Layer**:Mina支持多种传输层实现,如TCP、UDP等,这些都抽象为IoAcceptor和IoConnector接口,方便开发者使用。 ...
Apache Mina是一个开源项目,主要用于构建高性能、高度可扩展的网络应用程序。它的全名是"Minimalistic Network Application Framework",提供了基于...在实际开发中,掌握Mina的使用能有效提升项目性能和开发效率。
Mina使用详细教程,这里有详细步骤,和netty是一个母亲
mina新手案例,mina新手教程源码 mina+springboot最简单的案例。用的IDEA * mina服务端 * 1、添加@Controller注解和 @PostConstruct注解,代表启动springboot项目时也调用该类下的该方法, * 启动springboot项目...
最后,`Apache_Mina_Server_2.0中文参考手册V1.0.pdf` 是MINA服务器端的中文参考手册,对于想要使用MINA构建服务器端应用的开发者来说尤其有用。这份手册可能详细解析了MINA服务器的搭建步骤、配置选项,以及如何...
mina socket 使用详解,这个文档简单易懂,是初学者的大大福音。
Mina和Socket是两种常见的网络通信框架和技术,它们在Java编程环境中被广泛使用。本篇文章将深入探讨如何使用Mina与Socket实现通信,并提供客户端和服务端的实现代码概述。 Mina(全称“MINA: Minimalistic ...
在提供的文件"minaConnect"中,可能包含了使用Mina实现上述功能的相关代码示例和配置。通过分析这些文件,可以更具体地了解如何在实际项目中应用Mina的连接、心跳和断线重连机制。不过,具体的实现细节和优化策略需...
这个框架提供了一种抽象层,允许开发者使用相同的API处理多种不同的传输协议,如TCP/IP、UDP/IP以及SSL/TLS等。在Android平台上,尽管MINA并不常见,但在某些需要进行复杂网络通信或跨平台的项目中,它可能会被采用...
在这个"Mina框架使用demo"中,我们将深入探讨如何利用Mina来实现长连接,以及如何使用其提供的API,如心跳服务和自定义编解码器。 首先,长连接是网络通信中的一个关键概念,它允许客户端和服务器之间的连接保持...
Mina框架允许配置不同的端口,以确保每个连接使用独立的通信通道,从而避免端口占用冲突。 5. **MinaClientDemo项目** 提供的`MinaClientDemo`示例项目可能包含了以下部分: - `MinaClient`:客户端实现,包含...
3. **MINA使用手记[1] .shtml** 和 **MINA框架使用总结 .shtml**:这些可能是个人或团队在使用MINA过程中的笔记和总结,可能包含了实践中的技巧、问题解决策略以及最佳实践。 4. **Apache MINA 线程模型配置 .shtml...
Mina分为1.x和2.x两个主要分支,推荐使用最新的2.0版本。框架中包含了Server和Client的封装,简化了网络通信结构。在Mina的架构中,IoService接口负责在一个线程上建立套接字连接,并通过Selector监听连接状态。当...
- **依赖库**:除了Mina的核心库(如mina-core-1.1.7.jar),还需要下载SLF4J(Simple Logging Facade for Java)的API和实现库(如slf4j-api-1.5.2.jar和slf4j-simple-1.5.2.jar),因为Mina使用SLF4J进行日志输出...
在MINA的Filter中设置合适的编码器和解码器,例如使用CharsetEncoder和CharsetDecoder。 4. **Android客户端接收消息问题** - 异步消息处理:由于Android主线程不能直接处理网络I/O,所以需要在后台线程中进行,...