在发送原始数据之前添加延迟?

时间:2010-11-10 11:10:20

标签: c++ delay

我想知道如何在通过网络再次发送之前为某些接收的原始数据添加延迟(例如:200ms)。

在发送之前是否可以使用内存在内存中存储位(8000)。

2 个答案:

答案 0 :(得分:1)

是的,但是为您提供完整的实施,这超出了本网站的范围。不过这里有一些提示

存储内存足够基本。要存储8000位,您可以使用std :: bitset,或者您可以手动实现它,毫无疑问,在每个字节的常规8位系统上有1000个字节。如果你需要通过网络将其作为8000位发送,那么你将使用后者的形式,但你可以从std :: bitset中获取原始数据,这样你仍然可以在内部使用该类。

延迟只是编写调度程序的问题,可以使用std :: priority_queue来实现它。

答案 1 :(得分:1)

您不会存储或发送8000位导致延迟。在发送数据之前,使用usleep()/ nanosleep()函数暂停程序200ms。

或使用Win32 Timer API SetTimer / KillTimer。将要延迟的数据添加到队列中,然后启动计时器,查看要延迟数据的毫秒数。当计时器关闭时,从队列中删除数据并发送它。