Apache MINA 基于TCP实例
来源:互联网 发布:手机淘宝怎么与优惠券 编辑:程序博客网 时间:2024/05/16 12:17
1、基于TCP/IP服务端
server:
import java.net.InetSocketAddress;import java.nio.charset.Charset;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer{ public static void main( String[] args ) throws IOException { IoAcceptor acceptor = new NioSocketAcceptor();//创建SocketAcceptor,监听连接进来的连接 acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );//添加Log过滤器
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));//添加编码过滤器 acceptor.setHandler( new TimeServerHandler() );//设置业务逻辑处理类 acceptor.getSessionConfig().setReadBufferSize( 2048 );//设置读取数据的缓冲区 acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); acceptor.bind( new InetSocketAddress(PORT) );//绑定监听的端口号
} }
Server Handler:
import java.util.Date;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;public class TimeServerHandler extends IoHandlerAdapter{ @Override public void exceptionCaught( IoSession session, Throwable cause ) throws Exception { cause.printStackTrace(); } @Override public void messageReceived( IoSession session, Object message ) throws Exception { String str = message.toString(); if( str.trim().equalsIgnoreCase("quit") ) { session.close(); return; } Date date = new Date(); session.write( date.toString() ); System.out.println("Message written..."); } @Override public void sessionIdle( IoSession session, IdleStatus status ) throws Exception { System.out.println( "IDLE " + session.getIdleCount( status )); }}
2、基于TCP/IP客户端
clinet
public static void main(String[] args) throws Throwable { NioSocketConnector connector = new NioSocketConnector();//创建一个连接器 connector.setConnectTimeoutMillis(CONNECT_TIMEOUT); //创建一个过滤器链 if (USE_CUSTOM_CODEC) { connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new SumUpProtocolCodecFactory(false))); } else { connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); } connector.getFilterChain().addLast("logger", new LoggingFilter()); connector.setHandler(new ClientSessionHandler(values)); IoSession session; for (;;) { try { ConnectFuture future = connector.connect(new InetSocketAddress(HOSTNAME, PORT)); future.awaitUninterruptibly(); session = future.getSession(); break; } catch (RuntimeIoException e) { System.err.println("Failed to connect."); e.printStackTrace(); Thread.sleep(5000); } } // wait until the summation is done session.getCloseFuture().awaitUninterruptibly(); connector.dispose();}
- Apache MINA 基于TCP实例
- Apache MINA 基于UDP实例
- 基于Apache Mina实现的TCP长连接和短连接实例
- 基于Apache Mina实现的TCP长连接和短连接实例
- 基于Apache Mina实现的TCP长连接和短连接实例
- 基于Apache Mina实现的TCP长连接和短连接实例
- 基于Apache mina 的android 客户端tcp长连接实现
- Apache Mina 应用 TCP/UDP socket编程实例
- 基于apache mina 移动应用即时通讯(IM)实例
- apache mina 实例
- Apache Mina实例
- Apache Mina 入门实例
- Apache Mina 入门实例
- Apache的Mina简单实例
- Apache的Mina简单实例
- TCP/IP协议之 Apache Mina 2
- 基于Apache Mina的一个简单应用
- 基于Apache Mina实现的UDP服务端
- IniEditor笔记详解
- Ant 学习笔记
- Ant配置文件详解
- Apache MINA 简介
- Apache MINA 框架详解
- Apache MINA 基于TCP实例
- Apache MINA 基于UDP实例
- Apache MINA 框架之IoService介绍
- Apache MINA 框架之Session介绍
- Apache MINA 框架之Filters介绍
- 解决JFreeChart中文乱码问题
- JFreeChart当鼠标停留在热点提示自定义信息功能
- Apache MINA 框架之Handler介绍
- Apache MINA 框架之Transports介绍