/**
* @author zhuzhifei
*
*/
//必须继承IoHandlerAdapter
public class TimeServerHandler extends IoHandlerAdapter {
private final Logger logger = LoggerFactory.getLogger(MinaTimeServer.class);
//补抓异常
@Override
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
// TODO Auto-generated method stub
super.exceptionCaught(session, cause);
}
//获取客户端消息后处理逻辑
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
// TODO Auto-generated method stub
super.messageReceived(session, message);
String str = message.toString();
if( str.trim().equalsIgnoreCase("quit") ) {
session.close(true);
return;
}
Date date = new Date();
session.write( "current time:"+date.toString() );//该消息将返回给客户端
System.out.println("Message Received:"+str);
logger.info(date.toString()+"Message Received:"+str);//日志没有输出why?
}
//发送消息
@Override
public void messageSent(IoSession session, Object message) throws Exception {
// TODO Auto-generated method stub
super.messageSent(session, message);
}
//当前会话关闭
@Override
public void sessionClosed(IoSession session) throws Exception {
// TODO Auto-generated method stub
super.sessionClosed(session);
}
//创建会话
@Override
public void sessionCreated(IoSession session) throws Exception {
// TODO Auto-generated method stub
super.sessionCreated(session);
}
//会话空闲
@Override
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
// TODO Auto-generated method stub
super.sessionIdle(session, status);
System.out.println( "IDLE " + session.getIdleCount( status ));
}
//打开会话
@Override
public void sessionOpened(IoSession session) throws Exception {
// TODO Auto-generated method stub
super.sessionOpened(session);
}
} 第三步、模拟客户端tcp调用
MinaTimeServer.java run as java Application后
C:\Documents and Settings\zhuzhifei>telnet 127.0.0.1 9123 连上服务器
客户端输入:abc后
服务端接收到:
2012-12-25 18:26:52 INFO com.figo.onlineshop.test.MinaTimeServer - Tue Dec 25 18:26:52 CST 2012Message Received:abc