gpt4 book ai didi

java - 如果客户端从不发送 FIN 数据包关闭连接,连接是否超时?

转载 作者:可可西里 更新时间:2023-11-01 02:41:21 24 4
gpt4 key购买 nike

我有一个用 Netty 实现的 HTTP 服务器。将消息推送到浏览器需要长轮询连接。大多数时候,服务器不会尝试关闭连接。

在 TCP session 中,如果任何一方想要关闭连接,它都会向另一方发送 FIN 数据包。如果服务器没有收到来自客户端的 FIN,在 1) 用户有硬网络故障或 2) 有人试图攻击服务器的情况下,是否保证 Netty 服务器将收到超时(或其他某种)给定时间后的异常?

如果它是真的,我不需要将 Read/WriteTimeoutHandler 添加到我的 channel 管道中,它会在计时器触发超时时关闭 channel 。我必须以任何一种方式关闭 channel ,否则我会泄漏资源。

最佳答案

is it guaranteed that the Netty server will receive a timeout (or other kind of) exception after a given time?

没有。如果套接字处于阻塞模式并且已设置读取超时,则会抛出 SocketTimeoutException。有一个 IOException: connection reset 如果启用了 TCP keepalive 并且连接确实断开了 2 小时,则可能会发生这种情况:这不包括对等方只是静默而连接保持有效的情况.否则没有。

关于java - 如果客户端从不发送 FIN 数据包关闭连接,连接是否超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622676/

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