<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    1.server
    package server;

    import java.net.InetSocketAddress;

    import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
    import org.apache.mina.core.session.IdleStatus;
    import org.apache.mina.filter.codec.ProtocolCodecFilter;
    import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
    import org.apache.mina.transport.socket.SocketAcceptor;
    import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

    public class MainServer
    {
        
    private static MainServer mainServer = new MainServer();
        
        
    private SocketAcceptor acceptor;
        
        
    private int bindPort = 8888;
        
        
    public static MainServer getInstances()
        
    {
            
    return mainServer;
        }

        
        
    private MainServer()
        
    {
            
    this.init();
        }

        
        
    private void init()
        
    {
            
    try
            
    {
                acceptor 
    = new NioSocketAcceptor();
                acceptor.getSessionConfig().setReadBufferSize(
    2048*3);
                acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 
    10);
                DefaultIoFilterChainBuilder chain 
    = acceptor.getFilterChain();
                chain.addLast(
    "myChain",new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); 
                acceptor.setHandler(ServerHandler.getInstances());
                acceptor.bind(
    new InetSocketAddress(bindPort));
            }

            
    catch (Exception ex)
            
    {
                ex.printStackTrace();
            }

        }

        
        
    public void shutDown()
        
    {
            acceptor.dispose();
        }

        
        
    public static void main(String[] args) throws Exception
        
    {
            MainServer.getInstances();
        }

    }



    2.handler

    package server;

    import org.apache.mina.core.filterchain.IoFilterAdapter;
    import org.apache.mina.core.service.IoHandler;
    import org.apache.mina.core.session.IdleStatus;
    import org.apache.mina.core.session.IoSession;
    import org.apache.mina.transport.socket.SocketSessionConfig;

    public class ServerHandler extends IoFilterAdapter implements IoHandler
    {
        
    private static ServerHandler samplMinaServerHandler = new ServerHandler();
        
        
    public static ServerHandler getInstances()
        
    {
            
    return samplMinaServerHandler;
        }

        
        
    private ServerHandler()
        
    {}
        
        
    public void sessionOpened(IoSession session) throws Exception
        
    {
            System.out.println(
    "連接找開");
        }

        
        
    public void sessionClosed(IoSession session)
        
    {
            session.close(
    true);
            System.out.println(
    "關閉");
        }

        
        
    public void messageReceived(IoSession session, Object message)
                
    throws Exception
        
    {
            String msg 
    = (String) message;
            System.out.println(
    "收到的信息長度" + msg.length());
            session.write(
    "echo");
        }

        
        
    public void exceptionCaught(IoSession session, Throwable arg1)
                
    throws Exception
        
    {
            session.close(
    true);
        }

        
        
    public void messageSent(IoSession arg0, Object arg1) throws Exception
        
    {
            
    //System.out.println(arg1);
        }

        
        
    public void sessionCreated(IoSession session) throws Exception
        
    {
            SocketSessionConfig cfg 
    = (SocketSessionConfig) session.getConfig();
            cfg.setReceiveBufferSize(
    2 * 1024 * 1024);
            cfg.setReadBufferSize(
    2 * 1024 * 1024);
            cfg.setKeepAlive(
    true);
            cfg.setSoLinger(
    0);
        }

        
        
    public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception
        
    {}
    }

    3.client
    package client;

    import java.net.InetSocketAddress;

    import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
    import org.apache.mina.core.future.ConnectFuture;
    import org.apache.mina.filter.codec.ProtocolCodecFilter;
    import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
    import org.apache.mina.transport.socket.nio.NioSocketConnector;

    public class MsgSender
    {
        
    private static MsgSender msgSender = new MsgSender();
        
        NioSocketConnector connector;
        
        DefaultIoFilterChainBuilder chain;
        
        
    public static MsgSender getInstances()
        
    {
            
    return msgSender;
        }

        
        
    private MsgSender()
        
    {
            connector 
    = new NioSocketConnector();
            chain 
    = connector.getFilterChain();
            chain.addLast(
    "myChain",new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); 
            connector.setHandler(ClientHandler.getInstances());
            connector.setConnectTimeoutMillis(
    1000);
        }

        
        
    public void sendMsg(String host, int port, String msg)
        
    {
            
    //chain.addLast("codec", new ProtocolCodecFilter( new TextLineCodecFactory()));
            ConnectFuture cf = connector.connect(new InetSocketAddress(host, port));
            cf.awaitUninterruptibly();
            
    try
            
    {
               cf.getSession().write(msg);
            }

            
    catch (Exception ex)
            
    {
                ex.printStackTrace();
            }

            cf.getSession().getCloseFuture().awaitUninterruptibly();
        }

        
        
    public void shutDown()
        
    {
            connector.dispose();
        }

        
        
    public static void main(String args[])
        
    {
            StringBuffer s 
    = new StringBuffer();
            
    for(int i=0;i<100;i++)
            
    {
                s.append(i);
            }

            
    for(int i=0;i<200;i++)
            
    {
                MsgSender.getInstances().sendMsg(
    "127.0.0.1"8888, s.toString());
            }

        }

    }


    4.handler
    package client;

    import org.apache.mina.core.service.IoHandlerAdapter;
    import org.apache.mina.core.session.IoSession;

    public class ClientHandler extends IoHandlerAdapter
    {
        
    private static ClientHandler samplMinaClientHandler = new ClientHandler();
        
        
    public static ClientHandler getInstances()
        
    {
            
    return samplMinaClientHandler;
        }

        
        
    private ClientHandler()
        
    {
        }

        
        
    public void sessionOpened(IoSession session) throws Exception
        
    {
        }

        
        
    public void sessionClosed(IoSession session)
        
    {}
        
        
    public void messageReceived(IoSession session, Object message)
                
    throws Exception
        
    {
            System.out.println(
    "收到到消息" + (String) message);
            session.close(
    true);
        }

        
        
    public void messageSent(IoSession arg0, Object arg1) throws Exception
        
    {
            
    //System.out.println(arg1);
        }

        
        
    public void exceptionCaught(IoSession session, Throwable cause) throws Exception
        
    {
            session.close(
    true);
        }

    }

    posted on 2011-08-30 13:11 HUIKK 閱讀(1251) 評論(0)  編輯  收藏 所屬分類: Javajava Net
    主站蜘蛛池模板: 亚洲精品一区二区三区四区乱码 | 1000部国产成人免费视频| 久久久久久国产精品免费免费男同| 久久av免费天堂小草播放| 香蕉视频在线免费看| 一级有奶水毛片免费看| 午夜免费啪视频在线观看| 日本在线免费观看| 日韩中文字幕精品免费一区| 91视频国产免费| 久久久久亚洲AV综合波多野结衣| 精品国产亚洲一区二区在线观看| 亚洲av无码一区二区三区不卡 | 亚洲日本精品一区二区| 亚洲中文字幕无码中文| 人成电影网在线观看免费| 91精品国产免费久久国语麻豆| 免费观看的毛片大全| 国产亚洲美女精品久久久2020| 久久久久亚洲精品无码蜜桃| 色老板亚洲视频免在线观| 成人久久久观看免费毛片| 一级毛片免费观看| 免费亚洲视频在线观看| 亚洲精品制服丝袜四区| 日韩欧美亚洲中文乱码| 免费国产午夜高清在线视频| 内射无码专区久久亚洲| 亚洲人成影院午夜网站| 一个人看的免费观看日本视频www| 亚洲精品国产免费| 亚洲线精品一区二区三区影音先锋 | 成人黄色免费网址| 久久精品夜色噜噜亚洲A∨| 亚洲中文无码mv| 无码午夜成人1000部免费视频| 亚洲日本va午夜中文字幕久久| 亚洲午夜电影在线观看高清| 丝瓜app免费下载网址进入ios| 免费一级毛片不卡不收费| 亚洲不卡在线观看|