View Javadoc

1   /*
2    *   @(#) $Id: EchoProtocolHandler.java 264677 2005-08-30 02:44:35Z trustin $
3    *
4    *   Copyright 2004 The Apache Software Foundation
5    *
6    *   Licensed under the Apache License, Version 2.0 (the "License");
7    *   you may not use this file except in compliance with the License.
8    *   You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing, software
13   *   distributed under the License is distributed on an "AS IS" BASIS,
14   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   *   See the License for the specific language governing permissions and
16   *   limitations under the License.
17   *
18   */
19  package org.apache.mina.examples.echoserver;
20  
21  import org.apache.mina.common.ByteBuffer;
22  import org.apache.mina.common.SessionConfig;
23  import org.apache.mina.io.IoHandler;
24  import org.apache.mina.io.IoHandlerAdapter;
25  import org.apache.mina.io.IoSession;
26  import org.apache.mina.io.socket.SocketSessionConfig;
27  
28  /***
29   * {@link IoHandler} implementation for echo server. 
30   * 
31   * @author Trustin Lee (trustin@apache.org)
32   * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $,
33   */
34  public class EchoProtocolHandler extends IoHandlerAdapter
35  {
36      public void sessionCreated( IoSession session )
37      {
38          SessionConfig cfg = session.getConfig();
39          if( cfg instanceof SocketSessionConfig )
40          {
41              ( ( SocketSessionConfig ) cfg ).setSessionReceiveBufferSize( 2048 );
42          }
43      }
44  
45      public void exceptionCaught( IoSession session, Throwable cause )
46      {
47          session.close();
48      }
49  
50      public void dataRead( IoSession session, ByteBuffer rb )
51      {
52          // Write the received data back to remote peer
53          ByteBuffer wb = ByteBuffer.allocate( rb.remaining() );
54          wb.put( rb );
55          wb.flip();
56          session.write( wb, null );
57      }
58  }