使用mina框架搭建的服务器使用模拟TCP客户端连接服务器

daynet 发布于 2013/11/20 18:25
阅读 1K+
收藏 1
使用mina框架搭建的服务器使用模拟TCP客户端连接服务器 ,服务器能监听到客户端,但是如果服务端单方面的关闭服务,再次开启服务器时,客户端连接不上,怎么回事?我的思路是:会不会是客户端还在等待服务器发送信息,不知道服务器已经关闭了,处于假连接状态,服务端用心跳机制能不能解决这个问题  
加载中
0
fneg
fneg
对的,客户端处于假连接状态,服务器关闭,再开启,客户端就必须要重新连接,用心跳能解决问题,每次发送不成功,就重新连接
0
daynet
daynet
不好意思  我是新手  刚接触mina  怎么实现这个心跳连接与判断?最好有部分代码能学习一下
0
daynet
daynet

引用来自“fneg”的答案

对的,客户端处于假连接状态,服务器关闭,再开启,客户端就必须要重新连接,用心跳能解决问题,每次发送不成功,就重新连接
首先说声谢谢  我是个新手  刚接触mina以及网络通信这一方面   关于怎么使用心跳机制解决服务端关闭在开启,通过心跳判断让客户端重新连接  还望前辈解答  最好是能有部分代码展示以便于学习和使用    谢谢
0
fneg
fneg

引用来自“刘伟2号”的答案

引用来自“fneg”的答案

对的,客户端处于假连接状态,服务器关闭,再开启,客户端就必须要重新连接,用心跳能解决问题,每次发送不成功,就重新连接
首先说声谢谢  我是个新手  刚接触mina以及网络通信这一方面   关于怎么使用心跳机制解决服务端关闭在开启,通过心跳判断让客户端重新连接  还望前辈解答  最好是能有部分代码展示以便于学习和使用    谢谢
最简单的心跳机制就是发送 "\r\n"到服务器端,服务器接收到,回复一个"ok",客户端每隔5*1000发送一次心跳,发送成功而且接收到OK,就表示连接还是可用的,如果发送不成功,那基本就是连接断掉了,重新在初始化Socket
0
反对撒
你这种情况跟MINA没有任何关系,就算是java本身的Socket连接也是这样,我建议你先把TCP/IP连接搞明白
0
daynet
daynet

引用来自“反对撒”的答案

你这种情况跟MINA没有任何关系,就算是java本身的Socket连接也是这样,我建议你先把TCP/IP连接搞明白
哦 谢了 我今天 正准备 突击一下TCP/IP
0
daynet
daynet

引用来自“fneg”的答案

引用来自“刘伟2号”的答案

引用来自“fneg”的答案

对的,客户端处于假连接状态,服务器关闭,再开启,客户端就必须要重新连接,用心跳能解决问题,每次发送不成功,就重新连接
首先说声谢谢  我是个新手  刚接触mina以及网络通信这一方面   关于怎么使用心跳机制解决服务端关闭在开启,通过心跳判断让客户端重新连接  还望前辈解答  最好是能有部分代码展示以便于学习和使用    谢谢
最简单的心跳机制就是发送 "\r\n"到服务器端,服务器接收到,回复一个"ok",客户端每隔5*1000发送一次心跳,发送成功而且接收到OK,就表示连接还是可用的,如果发送不成功,那基本就是连接断掉了,重新在初始化Socket
谢谢你的帮助 不胜感激
0
linan
linan
服务端突然断了 mina会自动remove session,在客户端的IoHandler 里sessionClosed时通知一下主线程尝试重连。 
0
fneg
fneg

引用来自“daynet”的答案

引用来自“fneg”的答案

引用来自“刘伟2号”的答案

引用来自“fneg”的答案

对的,客户端处于假连接状态,服务器关闭,再开启,客户端就必须要重新连接,用心跳能解决问题,每次发送不成功,就重新连接
首先说声谢谢  我是个新手  刚接触mina以及网络通信这一方面   关于怎么使用心跳机制解决服务端关闭在开启,通过心跳判断让客户端重新连接  还望前辈解答  最好是能有部分代码展示以便于学习和使用    谢谢
最简单的心跳机制就是发送 "\r\n"到服务器端,服务器接收到,回复一个"ok",客户端每隔5*1000发送一次心跳,发送成功而且接收到OK,就表示连接还是可用的,如果发送不成功,那基本就是连接断掉了,重新在初始化Socket
谢谢你的帮助 不胜感激
@daynet 晚上搞出来一个Demo给你参考,里面包含Android客户端代码和服服务器端端代码,希望对你有所帮助。  http://my.oschina.net/fengcunhan/blog/178155
0
Defonds
Defonds
这是基本 socket 连接的问题吧?
返回顶部
顶部