简短版本:我写了 .ReadTimeout = 10mins 但超时似乎是 30sec-1min。我可以覆盖系统/用户超时或其他什么吗?
我给了客户一个连接到我们服务器的应用程序。看来,如果连接空闲 30 秒或一分钟,它们的 tcp 连接就会超时。客户端应用程序是用.NET编写的
有没有办法覆盖超时?我还没有在我们的任何计算机上看到这个问题。如果不需要的话,我不想要求客户更改他们的设置。我如何覆盖超时?
我写了 NetworkStream (来自 TcpClient).ReadTimeout = 10mins 但显然它等待的时间要少得多,所以我猜它的系统超时?我不能覆盖那些可以吗?
没有任何具体的调试数据,这是一个常见的场景,(我想我是通过工作中的痛苦+一本经典书籍《TCP/IP Illustrator》学到的?)谈到了这一点。
打开套接字上的读取超时通常是无穷大...但是客户端将断开连接,因为其他层断开连接。
大多数 TCP 实现都会将资源分配给连接,因此每个系统(不仅仅是服务器,还有负载均衡器等)都可能为连接付出一定的成本,并且不希望让它永远打开。