当前位置:编程学习 > JAVA >>

求解为什么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 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,