七、TCP C/S:socket 读写超时设置

本文介绍了如何在Python中设置TCP套接字的读写超时时间,通过修改socket的SO_SNDTIMEO和SO_RCVTIMEO选项。作者进行了测试,当服务端断开网络连接时,客户端在超时后会终止,系统仍会持续重传数据包。文章还探讨了超时设置不会阻止系统的TCP重传机制,并讨论了write函数成功并不意味着数据已被接收的问题。
摘要由CSDN通过智能技术生成

socket 的读写超时时间超过十分钟,数据包会重传16次。参考:http://my.oschina.net/lowkey2046/blog/694229

我们可以通过设置 socket 选项 SO_SNDTIMEO 和 SO_RCVTIMEO 来减少读写 socket 的等待时间。

1. 程序源码

在源码 http://my.oschina.net/lowkey2046/blog/693852 基础上进行修改。

在创建 socket 后,通过 setsockopt 函数修改读写超时时间即可。测试时只修改客户端 socket 的超时。

client

int main(int argc, char **argv)
{
    struct timeval      tv;

    /*
     * 省略
     */

    if ((sockfd 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值