作者:終南 <[email protected]>
客戶端/服務器框架庫;
或者一個網絡socket庫。
slf4j-api.jar
slf4j-jdk14.jar
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
private static final int PORT = 9123;
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast(
"codec",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset
.forName("UTF-8"))));
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
acceptor.bind(new InetSocketAddress(PORT));
}
}
(3)創建一個 TimeServerHandler 類,其內容爲:
import org.apache.mina.common.IoHandlerAdapter;
import org.apache.mina.common.IoSession;
@Override
public void exceptionCaught(IoSession session, Throwable cause)
throws Exception {
cause.printStackTrace();
}
public void messageReceived(IoSession session, Object message)
throws Exception {
String str = message.toString();
System.out.println("Message read:");
System.out.println(str);
session.write(date.toString());
System.out.println("Message written...");
session.close();
}
public void sessionIdle(IoSession session, IdleStatus status)
throws Exception {
System.out.println("IDLE " + session.getIdleCount(status));
}
}
(4)編譯並運行MinaTimeServer類
信息: CREATED
2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
信息: OPENED
2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
信息: RECEIVED: HeapBuffer[pos=0 lim=261 cap=2048: 47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A...]
Message written...
Message read:
Accept: */*
Message written...
Message read:
Accept-Language: zh-cn,en-US;q=0.5
Message written...
Message read:
UA-CPU: x86
Message written...
Message read:
Accept-Encoding: gzip, deflate
Message written...
Message read:
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Message written...
Message read:
Host: 127.0.0.1:9123
Message written...
Message read:
Connection: Keep-Alive
Message written...
Message read:
2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
信息: SENT: HeapBuffer[pos=0 lim=29 cap=30: 46 72 69 20 41 70 72 20 31 31 20 31 32 3A 32 32...]
2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
信息: SENT: HeapBuffer[pos=0 lim=0 cap=0: empty]
2008-4-11 12:22:44 org.apache.mina.filter.logging.LogLevel$4 log
信息: CLOSED