- 浏览: 949367 次
文章分类
- 全部博客 (428)
- Hadoop (2)
- HBase (1)
- ELK (1)
- ActiveMQ (13)
- Kafka (5)
- Redis (14)
- Dubbo (1)
- Memcached (5)
- Netty (56)
- Mina (34)
- NIO (51)
- JUC (53)
- Spring (13)
- Mybatis (17)
- MySQL (21)
- JDBC (12)
- C3P0 (5)
- Tomcat (13)
- SLF4J-log4j (9)
- P6Spy (4)
- Quartz (12)
- Zabbix (7)
- JAVA (9)
- Linux (15)
- HTML (9)
- Lucene (0)
- JS (2)
- WebService (1)
- Maven (4)
- Oracle&MSSQL (14)
- iText (11)
- Development Tools (8)
- UTILS (4)
- LIFE (8)
最新评论
-
Donald_Draper:
Donald_Draper 写道刘落落cici 写道能给我发一 ...
DatagramChannelImpl 解析三(多播) -
Donald_Draper:
刘落落cici 写道能给我发一份这个类的源码吗Datagram ...
DatagramChannelImpl 解析三(多播) -
lyfyouyun:
请问楼主,执行消息发送的时候,报错:Transport sch ...
ActiveMQ连接工厂、连接详解 -
ezlhq:
关于 PollArrayWrapper 状态含义猜测:参考 S ...
WindowsSelectorImpl解析一(FdMap,PollArrayWrapper) -
flyfeifei66:
打算使用xmemcache作为memcache的客户端,由于x ...
Memcached分布式客户端(Xmemcached)
MINA TCP简单通信实例:http://donald-draper.iteye.com/blog/2375297
MINA 编解码器实例:http://donald-draper.iteye.com/blog/2375317
MINA 多路分离解码器实例:http://donald-draper.iteye.com/blog/2375324
Mina Socket会话配置:http://donald-draper.iteye.com/blog/2375529
Mina Socket与报文过滤链:http://donald-draper.iteye.com/blog/2376440
Mina 协议编解码过滤器一(协议编解码工厂、协议编码器):
http://donald-draper.iteye.com/blog/2376663
Mina 协议编解码过滤器二(协议解码器):
http://donald-draper.iteye.com/blog/2376679
Mina 队列Queue:http://donald-draper.iteye.com/blog/2376712
Mina 协议编解码过滤器三(会话write与消息接收过滤):
http://donald-draper.iteye.com/blog/2376818
Mina 累计协议解码器:http://donald-draper.iteye.com/blog/2377029
MINA 多路复用协议编解码器工厂一(多路复用协议编码器):
http://donald-draper.iteye.com/blog/2377170
MINA 多路复用协议编解码器工厂二(多路复用协议解码器):
http://donald-draper.iteye.com/blog/2377324
Mina IoHandler接口定义:http://donald-draper.iteye.com/blog/2377419
Mina Nio会话(Socket,DataGram):http://donald-draper.iteye.com/blog/2378169
Mina Nio处理器:http://donald-draper.iteye.com/blog/2377725
Mina socket监听器(NioSocketAcceptor):http://donald-draper.iteye.com/blog/2378668
Mina socket连接器(NioSocketConnector):http://donald-draper.iteye.com/blog/2379000
前面的文章我们关注时Mina的socket通信,从今天起,我们来看一下报文通信,从一个实例开始:
Server-peer:
server-handler:
client-peer:
client-handler:
启动server&client peer,控制台输出:
server peer:
[INFO ] 2017-06-12 09:01:05 mina.udp.main.UdpServer =========Udp Server peer is start...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter CREATED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========Session Created...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter OPENED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========Session Opened...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter RECEIVED: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 73 65 72 76 65 72 20 70 65 65...]
[INFO ] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========The message received from Server peer is:Hello server peer...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter SENT: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 43 6C 69 65 6E 74 20 70 65 65...]
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler ******************* messageSent...
client peer:
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter CREATED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========Session Created...
[INFO ] 2017-06-12 09:01:15 mina.udp.main.UdpClient =========Udp Client peer is start...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter OPENED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========Session Opened...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter SENT: HeapBuffer[pos=0 lim=20 cap=1024: 48 65 6C 6C 6F 20 73 65 72 76 65 72 20 70 65 65...]
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========messageSent...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter RECEIVED: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 43 6C 69 65 6E 74 20 70 65 65...]
[INFO ] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========The message received from Server peer is:Hello Client peer...
MINA 编解码器实例:http://donald-draper.iteye.com/blog/2375317
MINA 多路分离解码器实例:http://donald-draper.iteye.com/blog/2375324
Mina Socket会话配置:http://donald-draper.iteye.com/blog/2375529
Mina Socket与报文过滤链:http://donald-draper.iteye.com/blog/2376440
Mina 协议编解码过滤器一(协议编解码工厂、协议编码器):
http://donald-draper.iteye.com/blog/2376663
Mina 协议编解码过滤器二(协议解码器):
http://donald-draper.iteye.com/blog/2376679
Mina 队列Queue:http://donald-draper.iteye.com/blog/2376712
Mina 协议编解码过滤器三(会话write与消息接收过滤):
http://donald-draper.iteye.com/blog/2376818
Mina 累计协议解码器:http://donald-draper.iteye.com/blog/2377029
MINA 多路复用协议编解码器工厂一(多路复用协议编码器):
http://donald-draper.iteye.com/blog/2377170
MINA 多路复用协议编解码器工厂二(多路复用协议解码器):
http://donald-draper.iteye.com/blog/2377324
Mina IoHandler接口定义:http://donald-draper.iteye.com/blog/2377419
Mina Nio会话(Socket,DataGram):http://donald-draper.iteye.com/blog/2378169
Mina Nio处理器:http://donald-draper.iteye.com/blog/2377725
Mina socket监听器(NioSocketAcceptor):http://donald-draper.iteye.com/blog/2378668
Mina socket连接器(NioSocketConnector):http://donald-draper.iteye.com/blog/2379000
前面的文章我们关注时Mina的socket通信,从今天起,我们来看一下报文通信,从一个实例开始:
Server-peer:
package mina.udp.main; import java.net.InetSocketAddress; import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.DatagramSessionConfig; import org.apache.mina.transport.socket.nio.NioDatagramAcceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import mina.udp.handler.UdpServerHandler; /** * NioDatagramAcceptor Server peer * @author donald * 2017年5月18日 * 下午9:59:13 */ public class UdpServer { private static final Logger log = LoggerFactory.getLogger(UdpServer.class); private static final String ip = "192.168.31.153"; private static final int port = 9122; public static void main(String[] args) throws Exception { IoAcceptor acceptor = new NioDatagramAcceptor(); //配置会话Handler UdpServerHandler udpServerHandler = new UdpServerHandler(); acceptor.setHandler(udpServerHandler); //配置过滤器 DefaultIoFilterChainBuilder defaultIoFilterChainBuilder = acceptor.getFilterChain(); defaultIoFilterChainBuilder.addLast("logger", new LoggingFilter()); //配置会话 DatagramSessionConfig datagramSessionConfig = (DatagramSessionConfig) acceptor.getSessionConfig(); datagramSessionConfig.setReuseAddress(true); //绑定地址 InetSocketAddress inetSocketAddress = new InetSocketAddress(ip,port); acceptor.bind(inetSocketAddress); log.info("=========Udp Server peer is start..."); } }
server-handler:
package mina.udp.handler; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Udp Server peer handler * @author donald * 2017年5月18日 * 下午10:00:21 */ public class UdpServerHandler extends IoHandlerAdapter { private static final Logger log = LoggerFactory.getLogger(UdpServerHandler.class); private static final CharsetEncoder charsetEncoder= Charset.forName("UTF-8").newEncoder(); private static final CharsetDecoder charsetDecoder= Charset.forName("UTF-8").newDecoder(); public void messageReceived(IoSession session, Object message) throws Exception { IoBuffer buffer = (IoBuffer) message; String msg = buffer.getString(buffer.limit(),charsetDecoder); log.info("=========The message received from Server peer is:" + msg); buffer.clear(); buffer.putString("Hello Client peer...", charsetEncoder); buffer.flip(); session.write(buffer); } @Override public void sessionClosed(IoSession session) throws Exception { log.debug("=========Session Closed..."); } @Override public void sessionCreated(IoSession session) throws Exception { log.debug("=========Session Created..."); } @Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { log.debug(session + "=========Session Idle..."); } @Override public void sessionOpened(IoSession session) throws Exception { log.debug("=========Session Opened..."); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { log.error(cause.getMessage()); session.closeNow(); } @Override public void messageSent(IoSession session, Object message) throws Exception { log.debug("******************* messageSent..."); } }
client-peer:
package mina.udp.main; import java.net.InetSocketAddress; import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder; import org.apache.mina.core.future.ConnectFuture; import org.apache.mina.core.service.IoConnector; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.nio.NioDatagramConnector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import mina.udp.handler.UdpClientHandler; /** * NioDatagramConnector Client peer * @author donald * 2017年5月18日 * 下午10:19:35 */ public class UdpClient { private static final Logger log = LoggerFactory.getLogger(UdpClient.class); private static final String ip = "192.168.31.153"; private static final int port = 9122; public static void main(String[] args) throws Exception { IoConnector connector = new NioDatagramConnector(); //配置会话Handler UdpClientHandler udpClientHandler = new UdpClientHandler(); connector.setHandler(udpClientHandler); //配置过滤器 DefaultIoFilterChainBuilder defaultIoFilterChainBuilder = connector.getFilterChain(); defaultIoFilterChainBuilder.addLast("logger", new LoggingFilter()); InetSocketAddress inetSocketAddress = new InetSocketAddress(ip,port); //连接远端peer ConnectFuture connFuture = connector.connect(inetSocketAddress); connFuture.awaitUninterruptibly(); log.info("=========Udp Client peer is start..."); } }
client-handler:
package mina.udp.handler; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Udp Client peer handler * @author donald * 2017年5月18日 * 下午10:24:45 */ public class UdpClientHandler extends IoHandlerAdapter { private static final Logger log = LoggerFactory.getLogger(UdpClientHandler.class); private static final CharsetEncoder charsetEncoder= Charset.forName("UTF-8").newEncoder(); private static final CharsetDecoder charsetDecoder= Charset.forName("UTF-8").newDecoder(); public void messageReceived(IoSession session, Object message) throws Exception { IoBuffer buffer = (IoBuffer) message; String msg = buffer.getString(buffer.limit(),charsetDecoder); log.info("=========The message received from Server peer is:" + msg); } @Override public void sessionClosed(IoSession session) throws Exception { log.debug("=========Session Closed..."); } @Override public void sessionCreated(IoSession session) throws Exception { log.debug("=========Session Created..."); } @Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { log.debug(session + "=========Session Idle..."); } @Override public void sessionOpened(IoSession session) throws Exception { log.debug("=========Session Opened..."); IoBuffer buffer = IoBuffer.allocate(1024); buffer.putString("Hello server peer...", charsetEncoder); buffer.flip(); session.write(buffer); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { log.error(cause.getMessage()); session.closeNow(); } @Override public void messageSent(IoSession session, Object message) throws Exception { log.debug("=========messageSent..."); } }
启动server&client peer,控制台输出:
server peer:
[INFO ] 2017-06-12 09:01:05 mina.udp.main.UdpServer =========Udp Server peer is start...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter CREATED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========Session Created...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter OPENED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========Session Opened...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter RECEIVED: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 73 65 72 76 65 72 20 70 65 65...]
[INFO ] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler =========The message received from Server peer is:Hello server peer...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter SENT: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 43 6C 69 65 6E 74 20 70 65 65...]
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpServerHandler ******************* messageSent...
client peer:
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter CREATED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========Session Created...
[INFO ] 2017-06-12 09:01:15 mina.udp.main.UdpClient =========Udp Client peer is start...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter OPENED
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========Session Opened...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter SENT: HeapBuffer[pos=0 lim=20 cap=1024: 48 65 6C 6C 6F 20 73 65 72 76 65 72 20 70 65 65...]
[DEBUG] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========messageSent...
[INFO ] 2017-06-12 09:01:15 org.apache.mina.filter.logging.LoggingFilter RECEIVED: HeapBuffer[pos=0 lim=20 cap=2048: 48 65 6C 6C 6F 20 43 6C 69 65 6E 74 20 70 65 65...]
[INFO ] 2017-06-12 09:01:15 mina.udp.handler.UdpClientHandler =========The message received from Server peer is:Hello Client peer...
发表评论
-
Mina 报文连接器(NioDatagramConnector)
2017-06-14 08:46 1336Mina 抽象Polling连接器(A ... -
Mina 报文监听器NioDatagramAcceptor二(发送会话消息等)
2017-06-13 16:01 1487Mina 报文监听器NioDatagramAcceptor一( ... -
Mina 报文监听器NioDatagramAcceptor一(初始化,Io处理器)
2017-06-13 09:51 2499Mina Io监听器接口定义及抽象实现:http://dona ... -
Mina socket连接器(NioSocketConnector)
2017-06-12 08:37 4638Mina 抽象Polling连接器(AbstractPolli ... -
Mina 抽象Polling连接器(AbstractPollingIoConnector)
2017-06-11 21:29 958Mina 连接器接口定义及抽象实现(IoConnector ) ... -
Mina 连接器接口定义及抽象实现(IoConnector )
2017-06-11 13:46 1768Mina IoService接口定义及抽象实现:http:// ... -
Mina socket监听器(NioSocketAcceptor)
2017-06-09 08:44 3331Mina IoService接口定义及抽象实现:http:// ... -
Mina 抽象polling监听器
2017-06-08 22:32 707Mina Io监听器接口定义及抽象实现:http://dona ... -
Mina Io监听器接口定义及抽象实现
2017-06-07 13:02 1293Mina IoService接口定义及抽象实现:http:// ... -
Mina IoService接口定义及抽象实现
2017-06-06 23:44 1122Mina IoHandler接口定义:http://donal ... -
Mina Nio会话(Socket,DataGram)
2017-06-06 12:53 1142Mina Socket会话配置:http://donald-d ... -
Mina 抽象Io会话
2017-06-05 22:45 966Mina Io会话接口定义:http://donald-dra ... -
Mina Io会话接口定义
2017-06-04 23:15 1093Mina Nio处理器:http://donald-drape ... -
Mina Nio处理器
2017-06-04 22:19 690Mina Io处理器抽象实现:http://donald-dr ... -
Mina Io处理器抽象实现
2017-06-03 23:52 1081Mina 过滤链抽象实现:http://donald-drap ... -
Mina IoHandler接口定义
2017-06-01 21:30 1667Mina 过滤链抽象实现:http://donald-drap ... -
MINA 多路复用协议编解码器工厂二(多路复用协议解码器)
2017-06-01 12:52 2191MINA 多路复用协议编解码器工厂一(多路复用协议编码器): ... -
MINA 多路复用协议编解码器工厂一(多路复用协议编码器)
2017-05-31 22:22 1790MINA 多路分离解码器实例:http://donald-dr ... -
Mina 累计协议解码器
2017-05-31 00:09 1151MINA 编解码器实例:http://donald-drape ... -
Mina 协议编解码过滤器三(会话write与消息接收过滤)
2017-05-28 07:22 1687Mina 协议编解码过滤器一(协议编解码工厂、协议编码器): ...
相关推荐
apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例apache mina 简单示例
Mina通信框架应用示例,学会运用Mina 框架
Mina自定义协议通信的示例
mina简单客户端服务端示例
mina mina传输对象的示例 mina框架 mina示例
运行客户端hello会弹出一个窗体,点击按钮模拟客户端主动发送。只是简单的例子很多没有处理,但是基本的数据连接没有问题
mina简单通信需要的包,博客地址http://blog.csdn.net/guozeming122/article/details/18552483
自己写的demo,完成了mina的双向通信功能,比较简单的一个demo,扩展性强
公司需求,做的简单的Demo,可以拓展,Mina自定义协议简单实现,象征性得收取2积分
完整的mina双向通信demo,实现了客户端与服务端之间相互发送消息。目前只支持发送输入的字符串。demo中有详细的注释,可以直接运行。运行环境(myeclipse+tomcat7.0)
mina的高级使用,mina文件图片传送,
Mina 示例 Mina 示例 Mina 示例 Mina 示例
打开找到main方法运行 MinaTimeServer启动服务器端
通过mina实现定长报文传输(报文使用ssl加密-mian自带的ssl过滤器)。
MINA网络通信框架.pdf
该项目是采用mina框架做的客户端与服务端通信 mina框架相比socket通信有许多好处还是非常不错的 这个项目示例比较经典
mina2源码
通过Mina与Socket实现通信,其包含客户端与服务端的实现代码
实现了Mina框架简单的换行符编解码的服务器客户端通信,简单自定义协议(报头式)的即时通讯
工作中的一个小项目,分享给大家参考,望大家不吝批评指教,本人常年从事JAVA软件开发,有丰富的MINA通信软件开发经验,现在已经有成熟的底层框架(结合了反射、DynaBean、Spring等多种技术),可以实现程序自动对...