下面我们修改最一开始的示例中的MyServer、MyClient 的代码,如下所示:
package com.dxz.minademo3;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
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.util.ReferenceCountingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import com.dxz.minademo2.TCPServerHandler;
public class TCPServer3 {
public static void main(String[] args) throws IOException {
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
// 编写过滤器
acceptor.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new CmccSipcCodecFactory(Charset.forName("UTF-8"))));
// 设置handler
acceptor.getFilterChain().addLast("myIoFilter", new ReferenceCountingFilter(new MyIoFilter()));
// 设置handler
acceptor.setHandler(new TCPServerHandler());
// 绑定端口
acceptor.bind(new InetSocketAddress(9124));
System.out.println(acceptor.getSessionConfig());
}
}
client
package com.dxz.minademo3;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.future.IoFutureListener;
import org.apache.mina.core.service.IoConnector;
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.transport.socket.nio.NioSocketConnector;
import com.dxz.minademo2.TCPClientHandler;
public class TCPClient3 {
public static void main(String[] args) {
IoConnector connector = new NioSocketConnector();
connector.setConnectTimeoutMillis(30000);
connector.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new CmccSipcCodecFactory(Charset.forName("UTF-8"))));
connector.setHandler(new TCPClientHandler("你好!\r\n 大家好!"));
ConnectFuture future = connector.connect(new InetSocketAddress("localhost", 9124));
future.addListener(new IoFutureListener<ConnectFuture>() {
public void operationComplete(ConnectFuture future) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
IoSession session = future.getSession();
System.out.println("++++++++++++++++++++++++++++");
}
});
System.out.println("*************");
}
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-93147-21.html
是封建社会独有的东西