初识Mina框架
来源:互联网 发布:阿里云香港服务器能放 编辑:程序博客网 时间:2024/05/29 12:19
Mina框架简单使用
需通过Build Path导入
mina-core-x.x.x.jar
slf4j-api-x.x.x.jar
MyServerHandler
import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.session.IoSession;public class MyServerHandler extends IoHandlerAdapter {public void exceptionCaught(IoSession session, Throwable cause)throws Exception {System.out.println("exceptionCaught");}public void messageReceived(IoSession session, Object message)throws Exception {String s = (String) message;System.out.println("messageReceived:" + s);session.write("server reply:" + s);}public void messageSent(IoSession session, Object message) throws Exception {System.out.println("messageSent");}public void sessionClosed(IoSession session) throws Exception {System.out.println("sessionClosed");}public void sessionCreated(IoSession session) throws Exception {System.out.println("sessionCreated");}// 会持续不断地一直被调用// 一般用于服务器检测客户端是否掉线 心跳机制public void sessionIdle(IoSession session, IdleStatus status)throws Exception {System.out.println("sessionIdle");}public void sessionOpened(IoSession session) throws Exception {System.out.println("sessionOpened");}}
MinaServer
import java.io.IOException;import java.net.InetSocketAddress;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaServer {public static void main(String[] args) {try {// 1.NioSocketAcceptor acceptor = new NioSocketAcceptor();// 2.acceptor.setHandler(new MyServerHandler());// 3.acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory())); // 二进制数据到对象转化acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 5); // 5s// 4.acceptor.bind(new InetSocketAddress(9898));} catch (IOException e) {e.printStackTrace();}}}
SocketClient
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;public class SocketClient {public static void main(String[] args) {SocketClient client = new SocketClient();client.start();}public void start() {BufferedReader inputReader = null;// 从socket读取BufferedReader reader = null;BufferedWriter writer = null;Socket socket = null;// Alt + Shift + z try...catch等快捷键// 从Console读取内容try {socket = new Socket("127.0.0.1", 9898);// 用于读取服务器返回的数据reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 从socket进行写入writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));inputReader = new BufferedReader(new InputStreamReader(System.in));startServerReplyListener(reader);String inputContent;while (!(inputContent = inputReader.readLine()).equals("bye")) {writer.write(inputContent + "\n");writer.flush();//System.out.println(inputContent);//// 服务器返回的数据//String response = reader.readLine();//System.out.println(response);}} catch (Exception e) {e.printStackTrace();} finally {try {reader.close();writer.close();inputReader.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}/** * 接收服务器消息的监听器 * 需要一直运行 */public void startServerReplyListener(final BufferedReader reader) {new Thread(new Runnable() {public void run() {try {String response;while ((response = reader.readLine()) != null) {System.out.println(response);}} catch (IOException e) {e.printStackTrace();}}}).start();}}
0 0
- 初识Mina框架
- 初识mina
- 初识mina
- MINA框架
- MINA框架
- MINA 框架
- mina框架
- mina框架
- Mina初识(一)
- Mina初识(二)
- mina框架分析:mina Filter
- MINA框架使用总结
- 读mina框架源码
- mina框架源代码研究
- MINA框架使用总结
- MINA框架概述
- MINA网络框架
- MINA 框架简介
- 第十六章 JAVA中的集合框架(下)
- 第十七章 JAVA多线程学习
- 第十八章 JAVA多线程交互
- 哈希表和红黑树的对比
- DOMPDF的utf-8字符换行问题
- 初识Mina框架
- 301. Remove Invalid Parentheses
- 在Ubuntu 12.04 LTS 64bit初始化Android编译环境后,遇到重启后卡住在Ubuntu logo,进不了desktop
- Go语言学习之net包(The way to go)
- Flask 快速入门
- U3D的碰撞(Collision)和触发(Trigger)
- LeetCode 300.Longest Increasing Subsequence 在一维数组中找最长序列(好题)
- IOS开发中的window,controller,view
- 278. First Bad Version