nio/mina (2) mina pass string

 

Server:

MainServer.java

    package com.nafio.mina;  
      
    import java.net.InetSocketAddress;  
      
    import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;  
    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;  
      
    public class MainServer {  
      
        /**
         * @param args
         */  
        public static void main(String[] args) throws Exception{  
            //Create a non-blocking server-side Socket  
            SocketAcceptor acceptor = new NioSocketAcceptor();  
            //Create a filter to receive data  
            DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();  
            //Set this filter to read data line by line (/r/n)  
            chain.addLast("myChin", new ProtocolCodecFilter(new  
            TextLineCodecFactory()));  
            //Set the message handler on the server side: a SamplMinaServerHandler object,  
            acceptor.setHandler(new MinaServerHandler());  
            // server-side binding port  
            int bindPort=9988;  
            //Bind the port, start the server  
            acceptor.bind(new InetSocketAddress(bindPort));  
            System.out.println("Mina Server is Listing on:= " + bindPort);  
        }  
      
    }  

 

2 MinaServerHandler.java

    package com.nafio.mina;  
      
    import org.apache.mina.core.service.IoHandlerAdapter;  
    import org.apache.mina.core.session.IoSession;  
      
    public class MinaServerHandler extends IoHandlerAdapter{  
      
        /**
         * When the client sends a message when it arrives
         */  
      
        public void messageReceived(IoSession session, Object message)  
        throws Exception {  
            //super.messageReceived(session, message);  
            //We have set the rule that the server parses the message to read line by line, here it can be converted to String:  
              
            System.out.println("ServerMessageReceived");  
              
            String s=(String)message;  
            // Write the received data back to remote peer  
            System.out.println("Server->Received message from client: "+s);  
            //Test sending the message back to the client  
            session.write(s+count);  
            count++;  
        }  
        private int count = 0;  
      
        public void messageSent(IoSession session, Object message) throws Exception {  
            System.out.println("Server->messageSent");  
        }  
      
      
        public void sessionClosed(IoSession session) throws Exception {  
            System.out.println("Server->sessionClosed");  
        }  
      
        @Override  
        public void sessionCreated(IoSession session) throws Exception {  
            System.out.println("服务端->sessionCreated");  
        }  
      
        /**
         * Called when a new client connects
         */  
      
        public void sessionOpened(IoSession session) throws Exception {  
            System.out.println("Server->Open");  
        }  
      
    }  

 

Client:

1 MainClient.java

    package com.nafio.mina;  
      
    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.textline.TextLineCodecFactory;  
    import org.apache.mina.transport.socket.nio.NioSocketConnector;  
      
    public class MainClient {  
        public static void main(String[] args) throws Exception{  
            // Create a TCP/IP connector.  
            NioSocketConnector connector = new NioSocketConnector();  
            // create a filter to receive data  
            DefaultIoFilterChainBuilder chain = connector.getFilterChain();  
            //Set this filter to read data line by line (/r/n)  
            chain.addLast("myChin", new ProtocolCodecFilter(new  
            TextLineCodecFactory()));  
            //Set the message handler on the server side: a SamplMinaServerHandler object,  
            connector.setHandler(new MinaClientHandler());  
            // Set connect timeout.  
            connector.setConnectTimeout(30);  
            //Connect to the server:  
            ConnectFuture cf = connector.connect(new  
            InetSocketAddress("localhost", 9988));  
              
            cf.awaitUninterruptibly();  
            cf.getSession().getCloseFuture().awaitUninterruptibly();  
            connector.dispose();  
        }  
    }  

 

2 MinaClientHandler.java

    package com.nafio.mina;  
      
    import org.apache.mina.core.service.IoHandlerAdapter;  
    import org.apache.mina.core.session.IoSession;  
      
    public class MinaClientHandler extends IoHandlerAdapter{  
      
      
        /**
         * When the message sent by the client arrives
         */  
        @Override  
        public void messageReceived(IoSession session, Object message)  
        throws Exception {  
      
            String s=(String)message;  
            System.out.println("Client->Message from server: "+s);  
        }  
      
      
        @Override  
        public void messageSent(IoSession session, Object message) throws Exception {  
            super.messageSent(session, message);  
            System.out.println("Client->messageSent");  
        }  
      
        @Override  
        public void sessionClosed(IoSession session) throws Exception {  
            System.out.println("Client->sessionClosed");  
        }  
      
        @Override  
        public void sessionCreated(IoSession session) throws Exception {  
            System.out.println("客户端->sessionCreated");  
        }  
      
        @Override  
        public void sessionOpened(IoSession session) throws Exception {  
            System.out.println("Client->sessionOpened");  
      
            //send Message  
            try  
            {  
                SendMsg(session);  
            }  
            catch(Exception e)  
            {  
                e.printStackTrace ();  
            }  
        }  
      
        //by nafio's own function  
        public void SendMsg(IoSession session) throws Exception{  
            //      TransferClass tansferClass=new TransferClass();  
            // tansferClass.setNum (1);  
            // tansferClass.setString("String");  
            String tansferStr="I am data";  
            session.write(tansferStr);    
        }  
      
      
    }  

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326693035&siteId=291194637