gpt4 book ai didi

c++ - Winsock 连接会随机失败吗?

转载 作者:行者123 更新时间:2023-11-28 03:54:12 24 4
gpt4 key购买 nike

我有一个通过 Winsock 在本地连接的阻塞客户端/服务器。客户端使用 firefox 从网站检索数据,将某些数据传递给服务器进行额外处理。服务器始终响应,处理时间从 1/10 秒到几分钟不等。客户端除了服务器之外没有任何 winsock 连接;所有网络数据都通过 Firefox 检索到硬盘。

此设置运行良好,直到客户端的 recv 看似随机地返回 -1 (SOCKET_ERROR),错误代码为 10054 (WSAECONNRESET)。这意味着服务器应该终止连接,但服务器实际上仍在等待 recv,就好像没有任何问题一样。早在工作大约一个半小时后的 5 分钟或之后,连接就以这种方式失败了。客户端向服务器发送了大约 10 种不同类型的请求,其中多种都发生了失败。请求的频率大致恒定,大概平均每分钟10-15次。当连接中断时,两台计算机都不会遇到互联网问题,并且远程桌面不会断开连接。

最初我以为是内存泄漏,但经过大量调试后我有理由确定不再存在。 Firefox 有时会处理相当大的 HTTP 流量,所以我认为这可能会填充可用的套接字缓冲区或其他东西——似乎值得怀疑,但在这一点上我真的不确定。那么,会不会是更多的内存泄漏、隐藏的缓冲区溢出、过多的网络流量?是什么导致我的 Winsock 应用随机失败?

最佳答案

听起来像是工作中的防火墙。

许多防火墙配置为终止空闲连接(即打开 TCP session ,一段时间内没有数据传输)。特别是如果它是一个 HTTP 连接,它通常不是持久的。

关于c++ - Winsock 连接会随机失败吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4260302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com