我需要使用 flash 或 actionscript ping 到网络

Posted

技术标签:

【中文标题】我需要使用 flash 或 actionscript ping 到网络【英文标题】:I need to ping to an network with flash or actionscript 【发布时间】:2011-08-19 22:48:21 【问题描述】:

我在 Flash 中创建了一个网络故障排除工具。该设计将在屏幕上显示所有组件。我必须每分钟对每个组件执行一次 ping 操作。我已经完成了设计部分。

请有人帮助我如何在 Flash 中 ping 一个网址或 IP。

我需要一个示例代码。我正在使用 Flash CS3

【问题讨论】:

【参考方案1】:

你的意思是你在屏幕上有所有的组件,你必须在一分钟内对每个组件执行一次 ping 操作?

如果 ping 是指一个应用程序,检查 url 的时间响应,那么您可以尝试使用此代码:

var ldr:URLLoader = new URLLoader();
ldr.addEventListener(HTTPStatusEvent.HTTP_STATUS, ldrStatus);

var url:String = "URL-TO-SITE";
var limit:int = 10;

var time_start:Number;
var time_stop:Number;
var times:int;

ping();

function ping():void

    trace("pinging", url);

    times = 0;
    doThePing();


function doThePing():void

    time_start = getTimer();
    ldr.load(new URLRequest(url));


function ldrStatus(evt:*):void

    if(evt.status == 200)
    
        time_stop = getTimer();
        trace("got response in", time_stop - time_start, "ms");
    

    times++;
    if(times < limit) doThePing();

这没什么特别的,URLLoader 尝试加载 url,并监听响应。如果status200,则“ping”成功。或者乒乓球。

另一方面,您始终可以运行服务器端 ping 程序,并使用闪存进行控制。

如果您指的是一个应用程序,例如上传-下载-速度测试仪,它也以类似的内容开头,而是以 Loader 对象开头。

希望这会有所帮助。

编辑:

防止缓存问题,可以使用:

ldr.load(new URLRequest(url + "?rnd="+Math.random()));

现在,此页面可能无法返回网站的确切内容,但可能足以估算响应时间。带闪光灯。

所以总的来说,这可以清除缓存并每次加载网站以获得更好的结果。

【讨论】:

缓存怎么样?浏览器可能只是第二次给出缓存响应。 @anemgyenge : 组件是指各种交换机、路由器的图片。如果它们失去连接,它们会开始闪烁红色 @anemgyenge :我的确切意图是构建一个应用程序,通过 ping 组件来检查组件,如果它们不工作,那么它将开始闪烁红色。 @Chandu-Indyaah:但是这些设备在哪里?这些是远程实体吗,所以你有一些 IP 地址给他们?另一方面,如果你选择flash,我写的解决方案可以作为一个开始。 @anemgyenge :是的,他们是远程的,他们有 IP 来 ping 他们【参考方案2】:

简而言之,你不能。

再长一点:你将无法 ping,因为 ping 实际上是一个 ICMP 数据包,我不相信 Flash 可以发送这些数据包。但是,如果您尝试 ping 的机器上正在运行一些 UDP 或 TCP 服务,并且该机器正在运行 socket policy server,那么您将能够使用 Socket 类直接连接到该服务(这可能就像一个 ping)。

【讨论】:

但是那些家伙是如何在 www.speedtest.net 上开发一个应用程序来使用闪存程序检查速度和连接性的。有没有其他选择? @Chandu-Indyaah:您可以从 Flash 应用程序向服务器发送请求,使其 ping 您需要的地址,然后服务器将响应结果。 speedtest.net 等使用我建议的第二个选项:简单地运行 TCP 服务和套接字策略服务器(或者,更可能的是,只使用现有的 HTTP 服务器和 Flash 的 URLLoader — 我是不确定,没仔细看)。

以上是关于我需要使用 flash 或 actionscript ping 到网络的主要内容,如果未能解决你的问题,请参考以下文章

你如何做出和识别手势?

使用 Flash“离线”播放视频

什么时候应该在 Flash 中使用 CPU 或 GPU 编译器选项?

如何使用 Flash 实现 Comet

Flash 计时器中的文本动画

Flash 连接到 WCF 服务