- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想我理解选项的正式含义。在我现在处理的一些遗留代码中,使用了该选项。客户提示 RST 作为从其一侧关闭连接时对 FIN 的响应。
我不确定我是否可以安全地删除它,因为我不明白什么时候应该使用它。
您能否举例说明何时需要该选项?
最佳答案
设置 SO_LINGER
的典型原因超时为零是为了避免大量连接坐在TIME_WAIT
状态,占用服务器上的所有可用资源。
当一个 TCP 连接被干净地关闭时,发起关闭(“主动关闭”)的一端以位于 TIME_WAIT
中的连接结束。几分钟。因此,如果您的协议(protocol)是服务器启动连接关闭的协议(protocol),并且涉及大量短期连接,那么它可能容易受到此问题的影响。
不过,这不是一个好主意 - TIME_WAIT
存在是有原因的(以确保来自旧连接的杂散数据包不会干扰新连接)。如果可能,最好将您的协议(protocol)重新设计为客户端启动连接关闭的协议(protocol)。
关于sockets - 什么时候需要 TCP 选项 SO_LINGER (0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757289/
我正在编写一个多线程winsock应用程序,但我在关闭套接字时遇到了一些问题。首先,同时打开的套接字数量是否有限制?假设一次有 32 个套接字。 我在其中一个套接字上建立了连接,并传递信息,一切顺利。
那里有很多混杂的信息。 我只是想确保数据已完全发送。我应该关闭/关闭还是使用 SO_LINGER 和超时关闭? 我在 Linux 下使用带 epoll 的非阻塞套接字,在 OSX 下使用 kqueue
我编写了以下代码来创建一个echo 服务器(我写入标准输出的数据从我的 PC 移动到服务器并返回到我的 PC)。在代码中,我在套接字中设置了 SO_LINGER 选项。因此,当我按下 Ctrl+C 导
将 SO_LINGER 与 udp 套接字一起使用是否有效? 如果是,您能否描述一下 SO_LINGER 适合 udp 套接字的情况或说明性示例? 一点背景: 我从未使用过 SO_LINGER 选项,
我在一个同时连接到许多 URL 的网站上工作(我们希望达到每分钟约 600 个),无论我尝试什么,总是有数千个 TIME_WAIT 仍然打开。我知道这些对 TCP 连接至关重要,但它们正在使用所有可用
我试图在连接上强制重置 TCP。建议的方法是将 SO_LINGER 设置为 0 并调用 close()。 我正在这样做,但连接仍处于 ESTABLISHED 状态。套接字以非阻塞模式运行。操作系统是
我想我理解选项的正式含义。在我现在处理的一些遗留代码中,使用了该选项。客户提示 RST 作为从其一侧关闭连接时对 FIN 的响应。 我不确定我是否可以安全地删除它,因为我不明白什么时候应该使用它。 您
我正在编写一个使用套接字的跨平台客户端应用程序,该应用程序是用 C++ 编写的。当服务器向我发送信息后,它正在硬关闭套接字,我遇到了问题。 我一直在阅读关于这个主题的其他帖子,我对这种方法的正确与错误
我已阅读 When is TCP option SO_LINGER (0) required?以及其他几个相关的问题和答案,但我无法重现这些帖子中解释的任何 SO_LINGER 行为。我将在这里分享我
我是一名优秀的程序员,十分优秀!