package common;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
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.filter.codec.textline.LineDelimiter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
public class SimpleTimeServerHandler extends IoHandlerAdapter{
@Override
public void messageReceived(IoSession session, Object message){
System.out.println("Request From:" + session.getRemoteAddress()+":"+message);
String a[] = {
"baaaaaaaaaaaaaaaat",
"bbbbbbbbbbbbbbbbbt",
"bcccccccccccccccct",
"bddddddddddddddddt",
"beeeeeeeeeeeeeeeet",
"bfffffffffffffffft",
"bggggggggggggggggt",
"bhhhhhhhhhhhhhhhht"};
for (int i = 0; i < 8; i++) {
try {
Thread.sleep(2000);
System.out.println("发送长度:"+a[i].length()+"\t"+a[i]);
session.write(a[i]);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException{
IoAcceptor acceptor = new NioSocketAcceptor();
//Don't know how to handle message of type 'java.lang.String'. Are you missing a protocol encoder?
acceptor.getFilterChain().addLast("codec1",
new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"),LineDelimiter.WINDOWS.getValue(),LineDelimiter.WINDOWS.getValue())));
acceptor.setHandler(new SimpleTimeServerHandler());
acceptor.getFilterChain().addLast("exceutor", new ExecutorFilter());
acceptor.bind(new InetSocketAddress(60001));
System.out.println("服务已启动,监听端口:"+60001);
}
}
评论0