求解为什么mina框架连接自动关闭session???
//mina 框架建立连接,用到的第一个类,加上mina2的jar包应该就能直接运行了
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import org.apache.mina.core.future.ConnectFuture;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
import com.ginkery.mina.oper.MyProtocalCodecFactory;
public class YNSend {
public static void main(String args[]){
IoConnector connector = new NioSocketConnector();
// 设置过滤器(使用Mina提供的文本换行符编解码器或者自定义过滤器)
/*connector.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new MyProtocalCodecFactory("utf-8")));*/
//LoggingFilter loger = new LoggingFilter();
//loger.setSessionClosedLogLevel(LogLevel.ERROR);
//connector.getFilterChain().addLast("loger", loger);
// 设置读取数据的缓冲区大小
connector.getSessionConfig().setReadBufferSize(2048);
// 读写通道10秒内无操作进入空闲状态
connector.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
connector.setHandler(new YNSendhander());
ConnectFuture future = connector.connect(new InetSocketAddress("119.62.128.50", 8881));
//future.awaitUninterruptibly();
//IoSession session = future.getSession();
//session.setAttribute("smg", smgs.get(3));
//Wait for the connection attempt to be finished.
/* session.getCloseFuture().awaitUninterruptibly();
connector.dispose(); */
}
}
//用到的第二个类:
import org.apache.mina.core.service.IoHandler;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
public class YNSendhander implements IoHandler {
@Override
public void exceptionCaught(IoSession arg0, Throwable arg1)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void messageReceived(IoSession arg0, Object arg1) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void messageSent(IoSession arg0, Object arg1) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void sessionClosed(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println(arg0);
}
@Override
public void sessionCreated(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void sessionIdle(IoSession arg0, IdleStatus arg1) throws Exception {
// TODO Auto-generated method stub
//arg0.close(true);
}
@Override
public void sessionOpened(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
}
}
直接用socket能完成连接,为什么采用mina后。连接会马上断开?????求帮忙啊,雪地里跪求,在线等………………
而且其他地址就可以连接比如:123.147.144.22:8801。这是为什么??????
qq:1004143305 --------------------编程问答-------------------- 这代码看着就欠揍 --------------------编程问答-------------------- connector.dispose();
它导致的
补充:Java , Web 开发