SO_LINGER
此选项指定函数close对面向连接的协议如何操作(如TCP)。缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数据发送给对方。
SO_LINGER选项用来改变此缺省设置。使用如下结构:
struct linger {
int l_onoff; /* 0 = off, nozero = on */
int l_linger; /* linger time */
};
有下列三种情况:
l_onoff为0,则该选项关闭,l_linger的值被忽略,等于缺省情况,close立即返回;
l_onoff为非0,l_linger为0,则套接口关闭时TCP夭折连接,TCP将丢弃保留在套接口发送缓冲区中的任何数据并发送一个RST给对方,而不是通常的四分组终止序列,这避免了TIME_WAIT状态;
l_onoff 为非0,l_linger为非0,当套接口关闭时内核将拖延一段时间(由l_linger决定)。如果套接口缓冲区中仍残留数据,进程将处于睡眠状态,直 到(a)所有数据发送完且被对方确认,之后进行正常的终止序列(描述字访问计数为0)或(b)延迟时间到。此种情况下,应用程序检查close的返回值是非常重要的,如果在数据发送完并被确认前时间到,close将返回EWOULDBLOCK错误且套接口发送缓冲区中的任何数据都丢失。close的成功返回仅告诉我们发送的数据(和FIN)已由对方TCP确认,它并不能告诉我们对方应用进程是否已读了数据。如果套接口设为非阻塞的,它将不等待close完 成。
l_linger的单位依赖于实现,4.4BSD假设其单位是时钟滴答(百分之一秒),但Posix.1g规定单位为秒。
转自:http://hi.baidu.com/%CF%B8%C6%B7%B3%C1%CF%E3/blog/item/db24882f0843293c1f3089cf.html
分享到:
相关推荐
Echo service using TCP sockets between two systems with socket options SO_REUSEADDR, SO_KEEPALIVE, TCP_NODELAY and SO_LINGER
关于 linger-tools: 此处编写的工具是为执行 SO_LINGER 套接字选项的跨平台测试而编写的。 您可以在以下博客文章中找到我们的测试结果: 我们发布代码的主要动机是让其他人可以复制我们执行的测试或针对新平台进行...
摘要视图订阅登录 | 注册(9)网络编程(2)102506次千里之外7篇5篇0篇20条setsockopt :SO_LINGER 选项设置 hongzi的专
直接的代码,需要安装相关的第三方库,再vscode+anaconda环境下运行成功,分离的音质也不错;
3.2.2 linger_process 3.2.3 max_non_affine_connections_per_process 3.2.4 idle_process_check_interval_ms 3.2.5 idle_process_max_idle_ticks 3.2.6 queue_time_limit_ms 3.2.7 async_wait_timeout_ms 3.3...
UDT的概要说明,参数设置,接口说明等。如配置设置 读取和设置选项通过getsockopt和setsockopt方法,一般不要修改默认选项除非应用不能正常运行。 UDT_MSS用来设置包的大小,一般情况下最佳的UDT包的大小是网络MTU...
-> 上游之间进行通信进一步可能的改进/调整: 从套接字读取时的退避策略pthread CPU/内存亲和性IRQ 和接口的队列处理亲和性添加对 SO_LINGER 的支持,这有助于减少与上游断开连接后处于 TAIM_WAIT 状态的套接字数量
mruby快速远程检查 FastRemoteCheck可以使用原始套接字高速执行端口侦听... :connect通过内核TCP堆栈(使用4个数据包connect(2)使用了connect(2)和SO_LINGER close(2) 。 6379端口列表 > f = FastRemoteCheck.new(
9.2.9 SO_LINGER 9.2.10 SO_OOBINLINE 9.2.11 SO_RCVBUF与SO_SNDBUF 9.2.12 SO_REUSEADDR 9.2.13 SO_TYPE 9.2.14 TCP_NODELAY 9.2.15 不支持的选项 9.2.16 未来会使用的选项 9.3 阻塞钩子 9.3.1 WSASetBlockingHook ...
9.2.9 SO_LINGER 9.2.10 SO_OOBINLINE 9.2.11 SO_RCVBUF与SO_SNDBUF 9.2.12 SO_REUSEADDR 9.2.13 SO_TYPE 9.2.14 TCP_NODELAY 9.2.15 不支持的选项 9.2.16 未来会使用的选项 9.3 阻塞钩子 9.3.1 WSASetBlockingHook ...
(原创)PDF转Word软件大全_完美解决pdf文档转word文档(linger凌凌)2013
5.10 地址信息函数 5.11 socket选项 5.11.1 SO_REUSEADDR选项 5.11.2 SO_RCVBUF和SO_SNDBUF选项 5.11.3 SO_RCVLOWAT和SO_SNDLOWAT选项 5.11.4 SO_LINGER选项 5.12 网络信息API 5.12.1 gethostbyname和...
萦绕交互式3D Web应用程序创建于2021年3月5日凯拉·斯普拉格·麦克雷(Kaila Sprague McRae) :hammer_and_wrench: 使用的技术该项目使用以下技术: ReactWebGL JSX JavaScript ES6 git / GitHub VS代码 :bug: 已知...
简易图片分享系统 这是一个图片存储的网站系统,具有简单的时间线...git clone --recurse-submodules git@github.com:loveyu/Linger.git cd config mv all-simple.php all.php vim all.php //配置正确的数据库连接信
一个徽章控件
solving liger equations by
港股公司研究
JMeter容器,用于Kafka负载测试 该容器可以部署到Docker Engine或... LINGER_MS Kafka Linger(毫秒)(linger.ms) 1个 BUFFER_MEMORY 卡夫卡缓冲存储器(buffer.memory) 33554432 确认 卡夫卡(Kafka)袜子 1个
如果您在本地使用示例Nim HTTPbeast服务器,则需要将主机地址设置为localhost和端口9292 k6 run --quiet --linger --paused -e ENDPOINT=localhost:9292 k6/loadtest_server.js 依存关系 请求> = 2.25.0 安装 ...
里面包含一个LingerUI工具、jQuery验证框架还有一个jQuery的API文档,有各种类型的验证和特效实例,物超所值哦