- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java套接字Socket编程—TCP参数
Java套接字Socket编程--TCP参数
在Java的Socket中,主要包含了以下可设置的TCP参数。
属性说明默认值SO_TIMEOUT对ServerSocket来说表示等待连接的最长空等待时间; 对Socket来说表示读数据最长空等待时间。0TCP_NODELAY是否一有数据就马上发送。falseSO_LINGER优雅地关闭套接字,或者立刻关闭。-1SO_SNDBUF发送数据的缓冲区大小。8KSO_RCVBUF接收数据的缓冲区大小。8KSO_KEEPALIVE是否启用心跳机制。falseSO_REUSEADDR是否地址重用。falseBACKLOG服务端处理线程全忙后,允许多少个新请求进入等待。50
BACKLOG
BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最大长度。如果未设置或所设置的值小于1,Java将使用默认值50。
ServerSocket serverSocket = new ServerSocket(8080, 100);
TCP_NODELAY
在TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。这里就涉及到一个名为Nagle的算法,该算法的目的就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。
TCP_NODELAY选项,就是用于启用或关于Nagle算法。如果要求高实时性,有数据发送时就马上发送,就将该选项设置为true关闭Nagle算法;如果要减少发送次数减少网络交互,就设置为false等累积一定大小后再发送。默认为false。
Socket中操作该属性的方法如下:
void setTcpNoDelay(boolean on)
启用/禁用 TCP_NODELAY(启用/禁用 Nagle 算法)。
boolean getTcpNoDelay()
测试是否启用 TCP_NODELAY。
关于Nagle算法介绍,请参考附录部分。
SO_TIMEOUT
对于服务端套接字ServerSocket来说,SO_TIMEOUT表示服务端accept方法空等待客户端连接的最长时间;对于客户端套接字Socket来说,SO_TIMEOUT表示输入流读取数据read方法的最长等待时间。一旦超过设置的SO_TIMEOUT,程度将抛出超时???常。
ServerSocket/Socket中操作该属性的方法如下:
int getSoTimeout()
返回 SO_TIMEOUT 的设置。
void setSoTimeout(int timeout)
启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。
使用示例:
ServerSocket serverSocket = new ServerSocket(8080);
serverSocket.setSoTimeout(30000);
Socket clientSocket = serverSocket.accept();
clientSocket.setSoTimeout(20000);
SO_LINGER
当调用closesocket关闭套接字时,SO_LINGER将决定系统如何处理残存在套接字发送队列中的数据。处理方式无非两种:丢弃或者将数据继续发送至对端,优雅关闭连接。事实上,SO_LINGER并不被推荐使用,大多数情况下我们推荐使用默认的关闭方式(即下方表格中的第一种情况)。
下方代码段显示linger结构语法,表格为不同参数情况下的套接字行为。
typedef struct linger {
u_short l_onoff; //开关,零或者非零
u_short l_linger; //优雅关闭最长时限
} linger;
各字段与对应行为如下表所示。
l_onoffl_lingerclosesocket行为发送队列底层行为零忽略立即返回。保持直至发送完成。系统接管套接字并保证将数据发送至对端。非零零立即返回。立即放弃。直接发送RST包,自身立即复位,不用经过2MSL状态。对端收到复位错误号。非零非零阻塞直到l_linger时间超时或数据发送完成。(套接字必须设置为阻塞)在超时时间段内保持尝试发送,若超时则立即放弃。超时则
您可能关注的文档
- GS教师用报参考NO10(19—20期).doc
- GS教师用报参考NO8(15—16期).doc
- Gpeejx基准论文格式要求范本[超全].doc
- GridTechnology在校园网中应用研究.doc
- GW350㎏—280KW中频无芯感应熔炼炉体使用说明书.doc
- Gwizpb财务的管理制度模板.doc
- GoogleAppEngine简易教程.doc
- GRE托福等剖析的技术帖必备学习.doc
- GY—05A电阻焊机控制器(二次焊)说明书.doc
- GY—05A电阻焊机控制器说明书—1.doc
- 2025文员个人简历.docx
- 2021年北京市初三(上)期中历史试题汇编:走向近代.docx
- 【中职】高教版 职业道德与法治 第四单元 第11课 依法从事民事活动 PPT课件.pptx
- 【中职】高教版 职业道德与法治 第四单元 第13课 学会依法维权 PPT课件.pptx
- 2025年云南省职教高考文化课程《思想政治》考试说明(暂定稿).docx
- 2025年云南省职教高考专业类别考试-机械类(暂定稿).docx
- 模块一项目二为什么要学习旅游心理学(课件)-《旅游心理学》同步教学(高教版.第五版).pptx
- 2025年云南省职教高考专业类别考试-13教育类(暂定稿).docx
- 模块四项目四管理好情感(课件)-《旅游心理学》同步教学(高教版.第五版).pptx
- 【主题班会】《弘扬五四精神-》主题班会-PPT课件(可直接使用).pptx
文档评论(0)