socket中的参数的设置

1,TCP_NODELAY 设置true 保证包尽可能的发送,无论包的大小。

setTcpNoDelay(true) 关闭socket的缓冲,setTcpNoDelay(false)在此启动缓冲。

2,SO_LINGER 指定socket关闭的时候,如何处理尚未发送的数据报文。默认情况下,close()方法将立即返回。但是系统仍然会尝试发送剩余的数据。设置0时,关闭socket,所有未关闭的数据包奖杯丢弃,如果SO_LINGER打开而且延迟时间设置任意的正数,close() 方法会阻塞,等待发送和接受确认。

setSoLinger(true,210);最大的延迟的时间为65535秒。

3,SO_TIMEOUT socket读取数据超时,read() 调用会阻塞尽可能长时间来满足得到字节,这是SO_TIMEOUT 可以确保在这次调用阻塞的时间不会超过固定的毫秒数,setSoTimeout(1222)

4,SO_RCVBUF 控制用于网络输入的建议的接受缓冲区的大小。 setReciveBufferSize(int size)

SO_SNDBUF 控制用于网络输入的建议的发送的缓冲区的大小。 setSendBufferSize(int size)

如果将发送缓冲区这只为64KB,而接受缓冲区设置为128KB,那么发送和接受缓冲区的大小都将是64KB。

在UNIX和LINUX系统中通常指定一个最大缓冲区大小,一般是64KB和256KB。

5,SO_KEEPALIVE 偶尔会通过一个空闲发送一个数据包(一般一两个小时一次) ,以确保服务器位崩溃。如果服务器没能响应这个包,客户端会持续尝试11分钟多的时间,直到接受到响应为止。

setKeepAlive(Boolean o)

6,SO_REUSEADDR 允许另一个Socket绑定到这个端口中,即使此时仍然可能存在前一个Socket为接受的数据。setReuseAddress(Boolean on) 这个方法必须在绑定socket之前调用。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值