Winsock 的 TCP 协议,连接太久会自动掉线?

RayLynn 2005-07-12 09:40:18
我不知道为什么。
连接的好好的,突然发送不出去,还报了错。

是不是什么特殊原因导致这种现象啊??
...全文
481 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hellohuan 2005-07-25
  • 打赏
  • 举报
回复
up
hanxuallan 2005-07-25
  • 打赏
  • 举报
回复
有一点是应该注意的:

当我们用tcp协议在服务器和客户端时候,发送数据之前检验状态是必要的,
但是,如果拔掉客户端网线,然后马上点击发送信息,你会看到什么??

我不知道各位是怎样解决这个问题的。
我个人的建议:

1。定时判断连接状态
2。发送数据之前判断连接状态
3。发送数据之前判断网络状态。

tcp连接状态 <> 网络连接状态
????
我想到的原因是:
windows or winsock 本身的原因, 还有tcp的handshake 需要时间。

如果各位有好的办法,请分享一下。
RayLynn 2005-07-25
  • 打赏
  • 举报
回复
解决该问题了。

回复人: zqfleaf(动力港湾) ( ) 信誉:110 2005-07-12 22:31:00 得分: 0


出现这种的原因,我知道的有一个
在你TCP连接经过防火墙的时候,防火墙上一般会设置,TCP连接多长时间没有数据包,就会自动断掉,
而防火墙断的时候两边一般是不会有任何事件发生的。
所以这种问题不能通过winsock本身来判断,你只能定时来判断。



-----------------

这位朋友说的对。是因为防火墙上的设置,一段时间没有发送数据就自动断开。

我的解决方案是每隔N秒自动发送一条信息包。
这样就可以直接避免的这种事情的发生。


zyg0 2005-07-12
  • 打赏
  • 举报
回复
网络不稳定造成的,没办法,掉了从连
RayLynn 2005-07-12
  • 打赏
  • 举报
回复
错误代码:40006 错误描述:所需事物或请求的错误协议或连接状态

请问,该如何处理这个问题啊?
zyg0 2005-07-12
  • 打赏
  • 举报
回复
正常的,经常掉
zqfleaf 2005-07-12
  • 打赏
  • 举报
回复
出现这种的原因,我知道的有一个
在你TCP连接经过防火墙的时候,防火墙上一般会设置,TCP连接多长时间没有数据包,就会自动断掉,
而防火墙断的时候两边一般是不会有任何事件发生的。
所以这种问题不能通过winsock本身来判断,你只能定时来判断。
daisy8675 2005-07-12
  • 打赏
  • 举报
回复
报什么错
degeshi 2005-07-12
  • 打赏
  • 举报
回复
回复人: hot1kang1(小许) ( ) 信誉:100
通信前 判断一次 是否连接 或者 不连 在每次通信时 连 连完 doevents后就断开
我也觉得小许说得对,这个样子也就不会出错了,又达到了目的是不是。。
一般的原则还是能解决问题的哈
flashbbs_com 2005-07-12
  • 打赏
  • 举报
回复
gz
3q2008Com 2005-07-12
  • 打赏
  • 举报
回复
通信前 判断一次 是否连接 或者 不连 在每次通信时 连 连完 doevents后就断开
zhujiechang 2005-07-12
  • 打赏
  • 举报
回复
应该会触发close或者error。
RayLynn 2005-07-12
  • 打赏
  • 举报
回复
不对啊。
我上次试过了一次,在客户端与服务器双放连接在一起时,只要客户端关闭了进程,服务器就会有触发 Error 事件的。

也就是说,掉线后服务器会知道。

大家平时是怎么处理这个问题的?
定时扫描连接状态?
zyg0 2005-07-12
  • 打赏
  • 举报
回复
只要不发送任何消息就不会触发事件的
RayLynn 2005-07-12
  • 打赏
  • 举报
回复
那我客户端掉了之后,为什么服务器没有触发任何时间。 close 和 error 都没触发。
这是什么原因呢?

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧