问题描述
用VB.NET做的SOCKET在本机测试,就是客户端与服务端在同一台机器上。连接上后,不会出现自己断开的情况。那怕是挂着几天都还是连接着的但是如果把服务端放到服务器上,然后用外网连接上服务器。一段时间后就会被断开了大约是30分钟到1小时这样。有时候就算有操作也会被断开。被断开的情况服务器与客户端都没有收到断开错误。但事实上是已经断了的。。。请问这个什么问题。谢谢
解决方案
解决方案二:
不会,请参考:
解决方案三:
感谢
解决方案四:
做socket通讯的时候,客户端和服务器端都定时发个数据过去.有人叫心跳包.这样防止出现断线的情况.我感觉是一个会话连接,如果一直没有数据传输,就会断开.比如gprs.如果长时间没有数据,移动那边就把线路断开了.我不懂tcp/ip底层协议的东东.一个高手说tcp/ip本身就含心跳包,不会自动端线,但他又说socket通信,一般都定时给对方发个心跳包过去.我奇怪按高手的说法,我们写socket通信的,都不用再单独写个定时发心跳包的代码了.但为啥大家都通常要写发送心跳包的功能呢?
时间: 2024-12-11 15:15:16