Linux C语言怎么实现通过socket发送一秒数据,C语言测试socket以太网网速。recv函数的一些不足。

博客介绍了如何在Linux环境下利用C语言进行以太网网速测试,讨论了recv函数在处理大量数据接收时的不足,并提出了通过循环recv来确保接收完整数据的解决方案。此外,还提到了使用时间戳提高测试精度的方法。
摘要由CSDN通过智能技术生成

目录

0.前言

1.Linux下实现一秒定时功能

2.C程序测试以太网网速

3. recv函数的不足

4.总结


0.前言

        这个标题有点乱哈。其实都是源于测试以太网一秒发送数据的速率。分为三个部分写吧,一是在Linux下实现一秒的定时功能,二是编写C程序实现测试以太网的网速,三是关于socket中recv函数的不足。二三可以归为一块。

        在这之前还是推荐一部电影棒子国的《我的一级兄弟》,讲的是一个智商停留在六岁的弟弟和身体残疾的哥哥相依为伴的故事。


1.Linux下实现一秒定时功能

        先说一下,我没有实现,大佬们可以指点一下。真是,敲了这么多年代码,这个写不出来。我原本使用的sleep这个函数,但是没有仔细看这个函数说明,它会把当前的进程挂起,参数时间后继续执行。所以这就不符合我的要求,我要实现发送一秒的数据,要干一秒的事情,进程挂起我怎么做事情?想起在裸机开发中常用到的delay函数,但是好像在Linux下的C库中没法用,具体我也忘了,效果不太好或者没有实现。

        我找了很多方法,也有用time函数系列,思路就是获取当前系统时间,运行一段时间后再获取一次时间,两值相减==1即为一秒。但是这样做极不精确。接着我尝试了一下alarm函数,发现什么,单独的程序可以执行,但是我加入socket连接之后,不会执行alarm的信号signal。我说的很乱,总之最后都没有我想要的答案。

        后来有这样一个思路,我手动计时,看着秒表来&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值