java socket通信基础补充

1、setReuseAddress(true|false),该参数设置为true,允许将多个socket绑定到同一个端口上,通过getReuseAddress()方法获取当前值即可,但是在发生Socket.bind()之前必须先设置才会生效。这个参数很少回去考虑使用。

2、setTcpNoDelay(true|false),该参数默认为false,会启用Nagle算法。启用这个算法是为了避免网络阻塞:当socket交互双方存在大量的小数据交互时,它会将较小的包延迟发送,若200ms内有多次小数据发送,则会合并在一起发送,若数据达到一定的范围,也会立即发送。

3、setSoLinger(true|false, int linger),该参数决定socket关闭时是否尝试继续发送Kernel缓冲区中还未发送出去的数据,若设置为true,则由第二个int类型的参数决定发送kernel缓冲区中还未发送的内容最长的等待时间,单位为秒,通过getSoLinger()可以获取到设置的值。

4、setSendBufferSize(int),设置发送缓冲区的大小,默认值为8192字节,通过getSendBufferSize()得到当前值,一般保持默认就OK.

5、setReceiveBufferSize(int),设置发送缓冲区的大小,默认值为8192字节,通过getReceiveBufferSize()得到当前值,一般保持默认就OK.

6、setKeepAlive(true|false),它每隔一段时间(很长一段时间,例如2小时)会将数据包发送到对方,如果对方响应,则认为连接依然存活;如果未响应,则在十多分钟后再发送一个数据包;如果还未响应,在再过十多分钟再继续发送一个数据包;如果对方还是未响应,则会将客户端的socket关闭,在某些情况下设置该参数后可以避免客户端的一些垃圾socket永远无法关闭的状况。该参数的默认值为false,可以通过getKeepAlive()获取到当前值。

7、setOOBInLine(true|false),这个参数默认为false,若开启,则允许通过socketde方法sendUrgentData(int)发送,这个API是直接发送,不会经过缓冲区。

Java_socket通信基础补充相关推荐

  1. 第二章 数据通信基础

    本章主要内容 2.1 数据通信基础知识 2.2 传输媒体 2.3 编码和复用 2.4 交换技术 2.5 数字传输技术 2.6 接入网 2.7 物理层概述 2.8 小结 2.1 数据通信基础知识 数据( ...

  2. 计算机网络----数据通信基础

    1.数据通信基础知识 知识一览 1.1典型的数据通信模型 如图 数字信号不能直接在广域网上传播,所以需要调制解调器来转化信号 1.2数据通信的相关术语 通讯的目的时传送信息 数据:传送信息的实体,通常 ...

  3. 前端部分面试题整理,欢迎补充

    1.ng中如何配置路由,$scope和$rootscope的原理 ng中如何配置路由?1)使用内置路由模块ng-routevar app = angular.module('ngRouteExampl ...

  4. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  5. Selenium2(WebDriver)总结(二)---Firefox的firebug插件参数设置(补充)

    Selenium2(WebDriver)总结(二)---Firefox的firebug插件参数设置(补充) 本文是对上一节的补充:http://www.cnblogs.com/puresoul/p/4 ...

  6. 【直播】李祖贤:集成学习答疑直播之八-- 集成知识点回顾与补充

    集成学习答疑直播之八-- 集成知识点回顾与补充 集成学习是首个横跨3个周期的长期组队学习,在第25期组队学习中进行到"第三期-模型融合与数据实战"阶段.组队学习期间,课程设计者每周 ...

  7. 本地应用 v-on补充

    ◆事件绑定的方法写成函数调用的形式,可以传入自定义参数 ◆定义方法时需要定义形参来接收传入的实参 ◆事件的后面跟上.修饰符可以对事件进行限制 ◆.enter可以限制触发的按键为回车 ◆事件修饰符有多种 ...

  8. 学以致用七---Centos7.2+python3.6.2+django2.1.1 --搭建一个网站(补充)

    补充:上一节出现的报错提示 可在settings.py 里,改成 '*'  ,这样所有的主机都可以访问了. 打开网页 注意红色框出来的 hello 是和 urls.py里的hello对应 urls.p ...

  9. 20155328 《信息安全系统设计基础》第六周 课堂提交补充

    20155328 <信息安全系统设计基础>第六周 课堂提交补充 第六周课上测试-3 编写一个程序w0603,运行以下代码: short int v=-学号后四位; unsigned sho ...

最新文章

  1. php 网站内容采集器 Snoopy
  2. python不读第一行和第一列-python 第一个
  3. qlistwidgetitem itempressed怎么区分左右键_图文介绍:断桥门窗五金配件怎么区分左右定义?...
  4. centos(7) 使用yum进行安装lamp环境
  5. 阿里HBase高可用8年抗战回忆录
  6. Java核心篇之多线程---day1
  7. 优品景象 进销存系统推荐_初步了解WMS(仓库管理系统)
  8. 【斗地主 javascript js 斗地主 AI 人机 网页在线】基于专家系统的斗地主AI算法
  9. 万字长文 | 谷歌进入到退出中国市场的前因后果
  10. 元学习算法MAML论文详解
  11. Teamviewer远程,应用界面显示空白
  12. 临床数据库挖掘系列3-手把手教你使用R语言对seer数据库清洗
  13. Python 批量转换视频音频采样率(附代码) | Python工具
  14. 【蓝凌表单】流程表单JS汇总
  15. Cura Engine 源码解析:Settings
  16. DNS无法解析IP_DNS之基本原理
  17. 前端剑法第二式————淬焰
  18. Spring Boot 核心注解?主要由哪几个注解组成?
  19. [hihocoder]1238 : Total Highway Distance
  20. TwinCAT3网卡驱动无法安装解决办法

热门文章

  1. TweenMax逐帧动画
  2. php cunstruct,南开大学海外大学生物学类教授一览
  3. win7系统,打开office出现错误代码0x8007007B的解决办法
  4. 跨境电商一件代发和专线小包是什么意思?有什么区别?
  5. 【源码解析】StyleNeRF 之Train_encoder.py
  6. mov 指令用c语言写,汇编总结:mov指令
  7. springboot 第十九节 starter and muti_datasource 多数据源
  8. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
  9. html5+css3笔记整理
  10. 马尔科夫链细致平衡条件