我使用基于UDP协议的Adobe AIR构建了简单的服务器 - 客户端应用程序(windows)。我想要实现的是测试我的应用程序如何在单个PC上的网络干扰(延迟,数据包丢失,数据包重新排序)下工作。
有很多网络干扰模拟程序,但看起来它们都是用来模拟两台PC之间的网络干扰,这不是我需要的。
答案 0 :(得分:0)
如果您使用的是Windows,则无法在localhost延迟中创建一些延迟。我今年冬天遇到了这个问题,这就是我解决问题的方法。
所有延迟逻辑都将在您的AS3代码中。在您收到一些数据(套接字数据进度事件)的那一刻,您创建一个具有所需延迟的新Timer(或使用现有的)并使用Timer.COMPLETE事件传递接收的套接字数据。当您的计时器触发时,您可以像使用它一样使用它的数据 - 您可以调用一些所需的功能,处理它并执行您需要的任何操作。您也可以使用setTimeout而不是Timer,这并不重要。您还可以通过不创建Timer来添加一些随机数据包丢失,因此不会传递任何数据。并且您还可以使用随机定时器时间,以便重新排序某些数据包。
我不会编写任何代码,因为实现实际上取决于您现在拥有的内容。但我希望这个小提示可以帮助你:)