Mina初级使用
来源:互联网 发布:java 对象初始化 编辑:程序博客网 时间:2024/06/07 22:26
- 首先去官网下载相关jar包:http://mina.apache.org/
解压:这里演示的主要引用两个包:
dist/mina-core-2.0.9.jar —mina核心包
lib/slf4j-api-1.7.7.jar —mina依赖的日志包 - 新建java工程,创建mina服务器端
public class MinaService { public static void main(String[] args) { NioSocketAcceptor acceptor ; try { //1.创建NioSocketAcceptor acceptor = new NioSocketAcceptor(); //2. 设置handler acceptor.setHandler(new ServiceHandler()); //3. 设置拦截器 : TextLineCodecFactory---这是默认的文本拦截器 acceptor.getFilterChain().addLast("text", new ProtocolCodecFilter(new TextLineCodecFactory())); //设置,如果客户端在5s内没有连接的话,会进入空闲状态,调用sessionIdle()方法 acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 5); //4. 绑定端口 acceptor.bind(new InetSocketAddress(8888)); } catch (Exception e) { e.printStackTrace(); } }}
- 创建IoHandlerAdapter的实现类
/** * 创建一个处理类 * @author johnny * * 2015年4月22日 下午8:56:18 */public class ServiceHandler extends IoHandlerAdapter { @Override public void sessionCreated(IoSession session) throws Exception { System.out.println("sessionCreated"); } @Override public void sessionOpened(IoSession session) throws Exception { System.out.println("sessionOpened"); } @Override public void sessionClosed(IoSession session) throws Exception { System.out.println("sessionClosed"); } @Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { System.out.println("sessionIdle --->" + status); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { System.out.println("exceptionCaught"); } @Override public void messageReceived(IoSession session, Object message) throws Exception { String s = (String) message; System.out.println("messageReceived: " + s); //发送数据给客户端 session.write("Service replay : " + s); } @Override public void messageSent(IoSession session, Object message) throws Exception { String s = (String) message; System.out.println("messageSent: " + s); } @Override public void inputClosed(IoSession session) throws Exception { System.out.println("inputClosed"); }}
经过上面3部,mina算是可以接受客户端的通信了,当然更高级的应用后面再写。
4. 下面写一个客户端去测试
public class SocketClient { BufferedReader socketReader; public static void main(String[] args) { SocketClient client = new SocketClient(); client.start(); } private void start() { Socket socket = null; BufferedReader reader = null; BufferedWriter writer = null; try { socket = new Socket("127.0.0.1", 8888); //从键盘中接受输入 reader = new BufferedReader(new InputStreamReader(System.in)); writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); receiverMsgListener(socketReader); String temp = null; while (!(temp = reader.readLine()).equals("bye")) {// System.out.println(temp + "\n"); writer.write(temp + "\n"); writer.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { try { socket.close(); reader.close(); writer.close(); socketReader.close(); } catch (IOException e) { e.printStackTrace(); } } } public void receiverMsgListener(final BufferedReader socketReader) { new Thread(new Runnable() { public void run() { while (true) { try { System.out.println(socketReader.readLine()); } catch (Exception e) { e.printStackTrace(); } } } }).start(); }}
以上就是mina的初体验!这是一种长连接方式。
0 0
- Mina初级使用
- Mina使用
- MINA框架使用总结
- MINA框架使用总结
- Apache Mina使用
- Mina使用问题总结
- MINA框架使用总结
- apache Mina使用小记
- MINA框架使用总结
- Apache Mina使用小记
- MINA黑名单BlacklistFilter 使用
- MINA框架使用总结
- MINA框架使用总结
- Apache Mina使用示例
- 为何选择使用MINA
- Apache Mina使用示例
- MINA黑名单BlacklistFilter 使用
- Mina使用总结
- POJ 1385-Binary Stirling Numbers(判断第二类斯特林数的奇偶性)
- Android学习 - 单击事件另两种实现方法
- css浏览器适配
- 欢迎使用CSDN-markdown编辑器
- 位运算总结
- Mina初级使用
- 类似于INI格式的配置文件的加载及解析
- Java IO学习笔记
- FZU2184【逆序数还原】
- 如何创建maven多模块项目
- shell脚本自动备份MySQL数据库
- SSIS导出日期结尾的Excel文件
- 4-1 简要说明RFID系统的时隙ALOHA算法的工作过程
- 新博客