APACHE MINA研究
来源:互联网 发布:网络摄像头数据传输 编辑:程序博客网 时间:2024/05/29 19:33
从一个简单的EchoProtocolHandler入手
程序EchoProtocolHandler
/**
* @className EchoProtocolHandler.java
* @author gaoling
* @createtime 2009-下午05:03:04
* @version TODO
* @purpose TODO
*
* @Notes TODO
* @Example: TODO
*/
package com.gaoling.minatest3;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.service.IoHandler;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.ssl.SslFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class EchoProtocolHandler extends IoHandlerAdapter {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void sessionCreated(IoSession session) {
session.getConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
// We're going to use SSL negotiation notification.
session.setAttribute(SslFilter.USE_NOTIFICATION);
}
@Override
public void sessionClosed(IoSession session) throws Exception {
logger.info("CLOSED");
}
@Override
public void sessionOpened(IoSession session) throws Exception {
logger.info("OPENED");
}
@Override
public void sessionIdle(IoSession session, IdleStatus status) {
logger.info("*** IDLE #" + session.getIdleCount(IdleStatus.BOTH_IDLE) + " ***");
}
@Override
public void exceptionCaught(IoSession session, Throwable cause) {
session.close(true);
}
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
// Write the received data back to remote peer
//这个message 是org.apache.mina.core.buffer.SimpleBufferAllocator$SimpleBuffer的实例
System.out.println("打印消息:"+message);
session.write(((IoBuffer) message).duplicate());
}
}
程序main
/**
* @className Main.java
* @author gaoling
* @createtime 2009-下午05:05:12
* @version TODO
* @purpose TODO
*
* @Notes TODO
* @Example: TODO
*/
package com.gaoling.minatest3;
import java.net.InetSocketAddress;
import java.nio.channels.Selector;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.AbstractIoService;
import org.apache.mina.core.service.IoService;
import org.apache.mina.core.service.IoServiceListener;
import org.apache.mina.core.service.IoServiceStatistics;
import org.apache.mina.core.service.SimpleIoProcessorPool;
import org.apache.mina.core.session.IoSessionConfig;
import org.apache.mina.filter.ssl.SslFilter;
import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioProcessor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;;
public class Main {
/** 监听端口号*/
private static final int PORT = 5678;
public static void main(String[] args) throws Exception {
//启动一个service
SocketAcceptor acceptor = new NioSocketAcceptor();
//绑定一个处理handle
acceptor.setHandler(new EchoProtocolHandler());
//绑定一个端口
acceptor.bind(new InetSocketAddress(PORT));
}
}
自启一个客户端,执行结果
- APACHE MINA研究
- Apache Mina网络编程研究
- apache mina 基础类研究(一)
- push研究——Apache Mina探索初步
- apache mina(一)-开源项目研究系列
- Apache Mina
- Apache Mina
- Apache Mina
- Apache Mina
- apache mina
- Apache Mina
- apache mina
- Apache MINA
- Apache mina
- Apache Mina
- Apache Mina
- Apache Mina
- Apache MINA - Mina 特性说明
- Wince映像的创建过程
- SQL Server files (*.mdf) require SQL Server Express 2005 to function properly.
- 日语自我介绍
- 理解MFC中的“资源”概念
- GCC使用详解
- APACHE MINA研究
- 可拖动的div
- Vs2005的win form动态生成菜单
- NHibernate one-to-one 关系时 正确的xml写法和curd写法
- base64编码原理与实现
- Flex模块化的一种思路
- 完全备份,差异备份,增量备份
- MINA研究-源代码
- 写了1个相当猥琐的小程序,··能把自己的照片贴在MM胸部,YY专用。