【发布时间】:2013-07-25 12:10:03
【问题描述】:
我使用基于 UDP 协议的 Adobe AIR 构建了简单的服务器-客户端应用程序(Windows)。我想要实现的是在单台 PC 上测试我的应用程序在网络干扰(延迟、数据包丢失、数据包重新排序)下的工作情况。
网络干扰模拟的程序有很多,但是好像都是用来模拟两台电脑之间的网络干扰的,我不需要。
【问题讨论】:
我使用基于 UDP 协议的 Adobe AIR 构建了简单的服务器-客户端应用程序(Windows)。我想要实现的是在单台 PC 上测试我的应用程序在网络干扰(延迟、数据包丢失、数据包重新排序)下的工作情况。
网络干扰模拟的程序有很多,但是好像都是用来模拟两台电脑之间的网络干扰的,我不需要。
【问题讨论】:
如果您使用的是 Windows,则不太可能在 localhost 延迟中产生一些延迟。今年冬天我提出了这个问题,这就是我解决问题的方法。
所有延迟逻辑都将在您的 AS3 代码中。在您收到一些数据(套接字数据进度事件)的那一刻,您创建一个具有所需延迟的新定时器(或使用现有的定时器)并使用 Timer.COMPLETE 事件传递接收到的套接字数据。当你的计时器触发时,你可以像通常没有它一样使用它的数据——你调用一些需要的函数,你处理它并做你需要的任何事情。您也可以使用 setTimeout 代替 Timer,这并不重要。您还可以通过不创建计时器来添加一些随机数据包丢失,因此不会有数据通过。您还可以使用随机 Timer 时间,这样一些数据包会被重新排序。
我不会写任何代码,因为实现真的取决于你现在已经拥有的东西。但我希望这个小提示能帮到你:)
【讨论】: