首页 > 编程语言 > 详细

java web----MINA框架使用

时间:2019-04-21 13:31:12      阅读:127      评论:0      收藏:0      [点我收藏+]

前期准备

1、下载

http://mina.apache.org/

2、将依赖包添加到工程目录下(在工程目录下创建libs(directory目录))

3、将 slf4j-api-1.7.26.jar 和 mina-core-2.0.21.jar 依赖包添加到libs目录下

4、给这两个文件和工程绑定关系,方法:选中两个文件,右击,选择 Add as Library

 

代码实现

 服务端

import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

import java.io.*;
import java.net.InetSocketAddress;

public class Server{
    public static void main(String[] args) {
        //创建一个非堵塞的Server(Socker),[NIO模式]
        SocketAcceptor acceptor = new NioSocketAcceptor();
        //创建一个过滤器对象
        DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();

        //设定一个过滤器,一行一行的读取数据(/r/n)
        chain.addLast("myChain",new ProtocolCodecFilter(new TextLineCodecFactory()));
        //设置服务器的消息处理器
        acceptor.setHandler(new MinaServerHandle());
        int port = 8080; //服务器的端口号
        try {
            //绑定端口,并且启动服务器,立刻返回,不会堵塞
            acceptor.bind(new InetSocketAddress(port));

        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("MINA服务器已经开启,端口号:"+port);
    }
}

//服务器端的消息处理器
class MinaServerHandle extends IoHandlerAdapter {
    //会话开始
    @Override
    public void sessionOpened(IoSession session) throws Exception {
        super.sessionOpened(session);
        System.out.println(session.getRemoteAddress()+"已连接");//获取客户端连接的ip地址
    }
    //会话结束
    @Override
    public void sessionClosed(IoSession session) throws Exception {
        System.out.println("会话结束");
    }

    //接受消息
    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {
        super.messageReceived(session, message);
        System.out.println(message); //接受消息
        session.write("hellow");
    }
}

客户端1

1.可以使用window自带的telnet工具和服务器连接,并进行通信

首先打开Telnet,在控制面板中,打开程序和功能,在打开 (打开或关闭windows 功能),选中Telnet 客户端 ,确定

测试:控制台上输入  telnet localhost(服务器的ip地址)   8080(服务器的端口) ,即可

客户端2

2.自己写客户端程序

 

java web----MINA框架使用

原文:https://www.cnblogs.com/yanxiaoge/p/10744454.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!