我正在尝试使用C实现一个选择性重复协议用于网络分配,但我很难理解如何为每个单独的数据包模拟计时器.我只能访问一个计时器,只能调用下面描述的功能.
/* start timer at A or B (int), increment in time*/
extern void starttimer(int, double);
/* stop timer at A or B (int) */
extern void stoptimer(int);
Run Code Online (Sandbox Code Playgroud)
Kurose和Ross在他们的网络教科书中提到过
单个硬件定时器可用于模拟多个逻辑定时器的操作[Varghese 1997].
我发现了类似任务的以下提示
您可以使用单个物理计时器模拟多个虚拟计时器.基本思想是在一个到期时间内保留一系列虚拟定时器,物理定时器将在第一个虚拟定时器到期时关闭.
但是,我无法访问除RTT之外的任何时间变量,因为模拟器位于另一个抽象层上.在这种情况下,如何为单个数据包实现计时器?
我有混合型的数量和文本的一列,我试图将它们分成使用不同的列if... then... else条件.是否有一个ISNUMBER()或ISTEXT等效电力查询?
pow()从<cmath>库中使用,我得到一些数字的负数.
2601*((int)pow(10.0,3*2)) = -1693967296
Run Code Online (Sandbox Code Playgroud)
为什么会这样?是因为int只有-32767到32767之间的范围?还是因为铸造?