网络编程-Netty 远程断开后的异常问题

问题描述

Netty 远程断开后的异常问题

使用netty做长连接,server端每30秒进行一次心跳包发送,client端也设置了ReadTimeoutHandler,时间长度为40秒,在局域网开发环境下,如果server自动断开,不管是client.channel本身,还是ReadTimeoutHandler都有异常提出,但是在非局域网连接情况下,将client连接到到公网的server后,sever一旦断开,所有的client端都不会提示异常,而且连ReadTimeoutHandler也不会按指定时间执行,请问是什么原因,如何解决呢?请各位高手指点一下.

解决方案

自己单独用一个定时器来控制,估计ReadTimeoutHandler等还是依赖服务器的返回响应等
非局域网环境,服务器断线响应包可能被过滤了,客户端收不到。

解决方案二:

http://www.iteye.com/problems/103468
http://baike.1688.com/doc/view-d36950770.html

时间: 2024-09-22 11:50:10

网络编程-Netty 远程断开后的异常问题的相关文章

Java编程那些事儿9——网络编程基础

对于初学者,或者没有接触过网络编程的程序员,会觉得网络编程涉及的知识很高深,很难,其实这是一种误解,当你的语法熟悉以后,其实基本的网络编程现在已经被实现的异常简单了. 1.4.1 网络编程是什么? 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据. 现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈. 在网

Java Socket 网络编程常见异常

原文:http://blog.csdn.net/xyz_lmn/article/details/7901474 1.java.net.SocketTimeoutException.这个异常比较常见,socket超时.一般有2个地方会抛出这个,一个是connect的时候,这个超时参数由connect(SocketAddress endpoint,int timeout)中的后者来决定,还有就是setSoTimeout(int timeout),这个是设定读取的超时时间.它们设置成0均表示无限大.

ftp程序在read的地方卡死了,等服务器断开后才抛异常java.net.socketException

问题描述 ftp程序在read的地方卡死了,等服务器断开后才抛异常java.net.socketException,设置了ftp.setReadTimeout(120000);//等待2*60*1000毫秒发生阻塞抛出异常后仍然无效,求大神指教,为什么会这样,怎么解决.以下贴出ftp远程下载服务器端代码privatestaticvoidgetFilefromServer(FtpClientftp,OutputStreamout,StringfileName)throwsException{byt

c3p0-数据库连接断开后还有操作的异常

问题描述 数据库连接断开后还有操作的异常 用的springmvc+c3p0连接池,服务器tomcat,内存不是很大. 在其中某个模块的一些功能访问时,间歇性的会出现以下这种错误,基本都是:数据库链接断开后还有动作执行.随后就是OOM,服务器崩溃. ERROR - 2015-10-08 09:07:24.187; org.hibernate.transaction.JDBCTransaction; JDBC rollback failed com.mysql.jdbc.exceptions.jdb

win7旗舰版实现多用户远程登录后,如何解决不同电脑登录同一用户时之前登录被强制断开的问题?

问题描述 win7旗舰版实现多用户远程登录后,如何解决不同电脑登录同一用户时之前登录被强制断开的问题? win7旗舰版实现多用户远程登录后,不同电脑远程登录同一用户时,该用户之前的登录会被强制断开.能否实现某个用户已经有电脑远程登录了,其他电脑则不能登录该用户,或者能够有提示也行,请高人解答,谢谢! 解决方案 windows 7被设计成桌面操作系统,最多只能有一个人操作计算机.这不是技术上的问题,而是商业上的问题.否则谁还买昂贵的windows server. 如果有用户登录,不允许别的用户登录

网络编程-客户端发送消息给服务端后,服务端应答无效

问题描述 客户端发送消息给服务端后,服务端应答无效 连接建立了,语言C++.前端是用cocos2d封装好的. 目前是:客户端向服务端send:服务端能接到:服务端向客户端send:客户端能接到. 但是:客户端向服务端send,服务端接到后立即应答向客户端send,客户端就接不到. 代码如下: 客户端:(在一个按钮中触发) gksock->connect_(5500,"127.0.0.1"); struct gksakura { int a; char b[32]; }; stru

netty长连接服务器断开后,客户端如何重新连接

问题描述 netty长连接服务器断开后,客户端如何重新连接 private final static Logger logger = LoggerFactory.getLogger(ResourceStatusReceiver.class); private static Bootstrap b = new Bootstrap(); public static void start() throws Exception { EventLoopGroup workerGroup = new Nio

网络编程Socket

 网络模型 OSI参考模型 TCP/IP参考模型 可以上网脑补 学的网络编程主要在应用层(我想android.JavaWeb.QQ.梦幻西游等吧,估计是).传输层和网际层混,每个层都有自己的协议规则. 传输层主要用TCP(同步:面向连接,数据量大).UDP(异步:面向无连接,大小限制在64k内,QQ聊天.网络视频用的UDP) 网际层主要用IP协议 应用层协议:HTTP 网络通讯要素 IP地址:标识网络上的电脑的,相当于给电脑取个唯一的名字   192.168.1.1,最大只能设置255这是字

C#网络编程概述

编程|网络 C#网络编程概述 微软下一代互联网开发工具VS.Net已于三月份在全国范围推出,其中的一门新兴语言C#正被越来越多的开发者所接受并运用. C#作为一门集众家之长的语言,在各个方面尤其是网络编程方面有着很大的优势.本文就向大家介绍一下用C#进行网络编程的一些基本知识和方法. 微软的.Net框架为我们进行网络编程提供了以下两个名字空间:System.Net以及System.Net.Sockets.通过合理运用其中的类和方法,我们可以很容易地编写出各种网络应用程序.这种网络应用程序既可以是