我有一个 AIR 2.0 应用程序,它向服务器发出请求可能需要 1 分钟以上。遗憾的是由于这个漏洞请求在 30 秒后超时。有一个解决方法,但仅适用于 Windows。你能告诉我如何在 Ubuntu 10.04 中做同样的事情吗?
答案1
如果我理解正确的话,这个命令在 Linux 上所做的操作与在 Windows 上所做的注册表调整相同:
sudo sysctl net.ipv4.tcp_fin_timeout=100
其中 100 是强制关闭套接字的超时时间(以秒为单位)。请注意:
- Ubuntu 中的默认值是 60 秒,而不是 30 秒。
- 这将由内核强制执行。因此,它可能对其他应用程序产生一些影响。我预计只有降低它才会产生影响,但谁知道呢。
- 我不明白这与 AIR 中的那个错误有何关联。
来自 tcp 手册页:
tcp_fin_timeout(整数;默认值:60)指定在强制关闭套接字之前等待最终 FIN 数据包的秒数。这严格违反了 TCP 规范,但是为了防止拒绝服务攻击而必需的。在 Linux 2.2 中,默认值为 180。