目录
0.前言
这个标题有点乱哈。其实都是源于测试以太网一秒发送数据的速率。分为三个部分写吧,一是在Linux下实现一秒的定时功能,二是编写C程序实现测试以太网的网速,三是关于socket中recv函数的不足。二三可以归为一块。
在这之前还是推荐一部电影棒子国的《我的一级兄弟》,讲的是一个智商停留在六岁的弟弟和身体残疾的哥哥相依为伴的故事。
1.Linux下实现一秒定时功能
先说一下,我没有实现,大佬们可以指点一下。真是,敲了这么多年代码,这个写不出来。我原本使用的sleep这个函数,但是没有仔细看这个函数说明,它会把当前的进程挂起,参数时间后继续执行。所以这就不符合我的要求,我要实现发送一秒的数据,要干一秒的事情,进程挂起我怎么做事情?想起在裸机开发中常用到的delay函数,但是好像在Linux下的C库中没法用,具体我也忘了,效果不太好或者没有实现。
我找了很多方法,也有用time函数系列,思路就是获取当前系统时间,运行一段时间后再获取一次时间,两值相减==1即为一秒。但是这样做极不精确。接着我尝试了一下alarm函数,发现什么,单独的程序可以执行,但是我加入socket连接之后,不会执行alarm的信号signal。我说的很乱,总之最后都没有我想要的答案。
后来有这样一个思路,我手动计时,看着秒表来&#x