Socket 关于设置Socket连接超时时间

1.关于Socket连接超时时间
参考链接:
https://www.iteye.com/blog/cuisuqiang-1725348

socket的读写是阻塞的,soTimeout是socket读写超时,而不是链接超时。

setSoTimeout  
public void setSoTimeout(int timeout)  
    throws SocketException启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。
    将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。  
    如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。
    选项必须在进入阻塞操作前被启用才能生效。  
    超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。   
参数:  
timeout - 指定的以毫秒为单位的超时值。   
抛出:   
SocketException - 如果底层协议出现错误,例如 TCP 错误。  
从以下版本开始:   
JDK 1.1   
另请参见:  
getSoTimeout()  

2.TCP的三次握手四次挥手
https://blog.csdn.net/qq_38950316/article/details/81087809

https://www.iteye.com/blog/xiaoz5919-1685138

3.http连接超时keep-alive
https://www.cnblogs.com/pigpdong/p/10899792.html
在这里插入图片描述在这里插入图片描述
4.TCP的keep alive和HTTP的Keep-alive
参考链接:https://www.cnblogs.com/cswuyg/p/3653263.html
TCP的keep alive是检查当前TCP连接是否活着;HTTP的Keep-alive是要让一个TCP连接活久点。它们是不同层次的概念。
TCP keep alive的表现:
当一个连接“一段时间”没有数据通讯时,一方会发出一个心跳包(Keep Alive包),如果对方有回包则表明当前连接有效,继续监控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值