package test;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.Calendar;
import org.apache.mina.core.future.CloseFuture;
import org.apache.mina.core.future.IoFuture;
import org.apache.mina.core.future.IoFutureListener;
import org.apache.mina.core.service.IoAcceptor;
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.transport.socket.nio.NioSocketAcceptor;
import server.MinaDecoder;
import server.MinaEncoder;
import server.ServerNetwork;
import tools.Debug;
public class Server111 extends IoHandlerAdapter {
// public static Server111 instance = new Server111();
private InetSocketAddress inetSocketAddress;
private IoAcceptor acceptor;
public static void main(String args[]) {
new Server111();
}
public Server111(){
// 显示IP地址
InetAddress addr;
try {
addr = InetAddress.getLocalHost();
Debug.log("IP address:" + addr.getHostAddress().toString());
Debug.log("Host Name:" + addr.getHostName().toString());
// logger.debug("IP地址:"+addr.getHostAddress().toString());
// logger.debug("本机名称:"+ addr.getHostName().toString());
} catch (UnknownHostException e1) {
e1.printStackTrace();
}
Debug.log("Port Number:8081");
// logger.debug("端口号:8081");
acceptor = new NioSocketAcceptor();
// 指定编码解码器
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MinaEncoder(), new MinaDecoder()));
acceptor.setHandler(this);
try {
acceptor.bind(new InetSocketAddress(8081));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
}
@Override
public void sessionCreated(IoSession session) throws Exception {
System.out.println("fucking");
CloseFuture future = session.close(false);
future.addListener(new IoFutureListener<IoFuture>() {
@Override
public void operationComplete(IoFuture future) {
// Calendar calendar = Calendar.getInstance();
// System.out.println(calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND));
// System.out.println(future.isDone());
}
});
}
public void sessionOpened(IoSession session) throws Exception {
System.out.println(session.isClosing());
}
@Override
public void sessionClosed(IoSession session) throws Exception {
System.out.println(session.isConnected());
System.out.println(acceptor.getStatistics());
}
@Override
public void messageSent(IoSession session, Object message) throws Exception {
// TODO Auto-generated method stub
// super.messageSent(session, message);
// System.out.println(message);
// printStackTrace(Server111.class);
}
@Override
public void exceptionCaught(IoSession session, Throwable cause) {
Debug.log("throws exception");
Debug.log("session.toString()", session.toString());
Debug.log("cause.toString()", cause.toString());
Debug.log("Report Error Over!!");
}
}