SO_LINGER: setSoLinger(boolean on, int val)
主要用于影响调用SOCKET关闭动作,val的单位在java里是百分之一秒
A. 当设置为setSoLinger(true, 0)时,关闭socket,TCP将丢弃保留在套接口发送缓冲区中的任何数据并发送一个RST给对方,而不是正常的四分组终止序列,这避免了TIME_WAIT状态,处于TIME_WAIT状态的端口是不会释放的,如果要重用这些端口可以在连接前,调用setReuseAddress(true)可设置端口重用。出现TIME_WAIT的原因是:A向B发送FIN包,B回复ACK确认,然后B向A发送FIN包,接着A向B发送ACK确认,之后A就进入TIME_WAIT状态,待过了2msl(大概1~4分钟)后,TIME_WAIT就会消失,如果想缩短该时间,需要修改windows注册表,或linux内核网络参数达到该目的,如设置为30秒
windows下修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,添加名为TcpTimedWaitDelay的DWORD键值
linux下修改/etc/sysctl.conf,然后执行/sbin/sysctl -p 使修改生效,修改的信息如下:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
(网络来源:http://blog.chinaunix.net/u3/93926/showart_1873546.html)
B. 当设置为setSoLinger(true, xxx)时,,关闭socket将被阻塞,直到TCP将等待缓冲区中的数据发送完毕或出现超时
C. setSoLinger(false, xxx),关闭socket立刻关闭,缺省是该值(我还没确定是发送一个RST给对方,还是是正常的四分组终止序列)
SO_TIMEOUT:在调用socket相关的具有阻塞特性的方法前设置,可以控制阻塞超时,一般使用在数据接收读取时,如多久没接收读取到远程发送过来的数据,出现超时。
分享到:
相关推荐
在Microchip的实现中,这些层次包含了如ARP(地址解析协议)、IP(网际协议)、TCP(传输控制协议)、UDP(用户数据报协议)以及DNS(域名系统)等关键协议。 1. **链路层**:在Microchip的TCP/IP协议栈中,这一层...
### TCP/IP协议配置及Windows网络实用程序的应用 #### 实验背景与目的 随着信息技术的不断发展,网络已经成为现代社会不可或缺的一部分。为了确保网络的高效稳定运行,掌握TCP/IP协议配置及网络实用程序的应用至关...
第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段...
8. **内核模块编译与调试**:如果需要修改TCP/IP协议栈的代码,需要了解如何编译内核模块,以及如何配置内核参数来启用或调整相关功能。 通过以上这些知识的学习和实践,开发者可以更好地理解Linux系统中TCP/IP协议...
5. **协议解析**:将接收到的数据包按照TCP/IP协议结构进行解析,展示每个字段的详细信息,有助于理解协议工作原理。 6. **日志记录**:记录所有的交互过程,便于后续分析和故障排查。 使用说明.txt文件应该包含了...
- **性能瓶颈**:针对大文件传输,可以通过调整TCP窗口大小等参数来提高传输效率。 - **安全性问题**:可以采用加密技术如SSL/TLS来保护数据的安全性。 ### 总结 通过对给定文件中涉及的代码分析,我们了解了如何...
### AUTOSAR_SWS_TcpIp-stack TCP/IP协议栈 经典平台 4.3.1 #### 一、概述 本文档详细介绍了AUTOSAR_SWS_TcpIp-stack(TCP/IP协议栈)在经典平台上的规范,版本为4.3.1。此文档包含了自2013年初始发布以来的所有...
### TCP/IP源码分析知识点概览 #### 一、引言 TCP/IP协议栈作为互联网通信的基础,其内部实现机制一直是计算机网络领域的研究热点。本文将深入探讨《TCP/IP源码分析》一书中的关键章节内容,旨在为读者提供一份详尽...
第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段...
《TCP/IP网络实验程序篇》源码是一套深入理解TCP/IP协议栈的实践教程,它包含了一系列用于解析、创建和模拟IP、TCP、UDP、ICMP以及IPv6协议头的程序。这些源代码旨在帮助开发者和网络专业人士更直观地了解这些网络...
标题中的“Modbus TCP/IP”是指一种用于工业设备通信的标准协议,它允许不同设备之间通过TCP/IP网络交换数据。在本场景中,我们关注的是如何在Android设备上利用Modbus TCP/IP协议与可编程逻辑控制器(PLC)进行通信...
16. **TCP/IP配置**:在操作系统中,用户可以设置IP地址、子网掩码、默认网关、DNS服务器等参数来配置TCP/IP连接。 以上只是TCP/IP体系中的一部分知识点,实际中还有更多复杂的概念和技术,如TCP连接管理、IP分片与...
TCP/IP(Transmission Control Protocol/Internet Protocol)协议栈是互联网上最基础、最广泛使用的通信协议,它为设备间的通信提供了标准和规范。在LabVIEW(Laboratory Virtual Instrument Engineering Workbench...
TCP/IP是网络通信的基础协议,它为Modbus提供了一种通过Internet或局域网进行通信的方式。"Modbus Poll"是一款强大的Modbus TCP/IP调试工具,它允许开发者测试和调试支持Modbus协议的设备。 1. **Modbus协议**: ...
- `NNTPCLI.C`、`BROWSE.C`、`DOMAIN.C`、`HTTPCLI.C`:这些是C语言编写的客户端程序,分别对应NNTP(新闻组传输协议)、浏览功能、域名解析和HTTP客户端,它们展示了TCP/IP协议栈在不同应用层协议中的实现。...
在SIMATIC Manager中,需要配置PLC的通信参数,开启Modbus TCP服务,并设置相应的IP地址和端口号。同时,根据需求分配Modbus寄存器映射,比如DI/DO(数字输入/输出)和AI/AO(模拟输入/输出)。 4. **VB.NET代码...
本文将详细讨论“VC串口与TCP/IP相结合的接口通讯程序”,这是一个针对初学者的优秀学习资源,由VC++6.0编程环境实现。通过理解和掌握这个程序,可以为深入研究接口通信打下坚实的基础。 首先,我们来解析“串口”...
根据题目要求,我们将基于湘潭大学关于TCP/IP网络协议的试卷中的部分内容...这些知识点覆盖了网络通信中的多个方面,包括参数化设计、状态管理、套接字操作、数据传输等,对于深入理解TCP/IP协议及其应用具有重要意义。
2. **配置协议栈**:根据硬件平台和网络环境,配置TCP/IP参数,如IP地址、子网掩码、网关等。 3. **移植协议栈**:将协议栈源码导入到uCOS-II工程中,处理好中断和定时器管理,确保协议栈能在RTOS环境下正常工作。 4...
TCP/IP协议分析主要包括IP数据报的解析和TCP报文段的分析。IP数据报包含IP头部,可以获取到源IP、目标IP和其他相关参数。TCP报文段分析涉及TCP头部,从中可以得知连接状态、流量控制、确认和重传等信息。 5. **...