netty 在客户端断开连接的情况下依然显示发送成功

12叔 发布于 2016/01/16 16:21
阅读 4K+
收藏 0

客户端连接服务器 后  我拨网线 然后 服务器 暂时还没有检测到 链路问题 

这时候还没有到心跳时间 无法判断出 链接问题 

这时候发 客户端发数据  代码如下

ChannelFuture future = channel.writeAndFlush(msg);
			future.awaitUninterruptibly(timeout);
			
			future.addListener( new ChannelFutureListener() {
				@Override
		        public void operationComplete(ChannelFuture future) {
		        	System.out.println("comple="+ future.isSuccess());
		            if (!future.isSuccess()) {
		            	System.out.println("fail  close ");
		            	close();
		            }
		        }
		    });



打印数据 依然是发送成功的

  这个要如何判断  链接还是存在的

心跳时间比较长 这种情况比较多




加载中
0
kakai
kakai
那就把心跳时间设置短点,网络异常一般都是通过心跳判别的(有些异常服务器能很快接收到反馈),除了用心跳我还不知道有其它方法
0
hibegin
hibegin
需要等待服务的正确响应后才能认为是正确收到了。 心跳机制还是要加的。
0
m
12叔
12叔
当前年少无知,这个是无法判断的 因为tcp链路状态跟连接状态不一致了 只有客户端回复一个消息 告诉你发送成功了 你才能算发送成功
返回顶部
顶部