Мне нужно пинговать в сеть с помощью flash или actionscript - PullRequest
4 голосов
/ 06 мая 2011

Я создал инструмент для устранения неполадок в сети во флэш-памяти.В дизайне будут все компоненты на экране.Я должен пинговать каждый компонент один раз в минуту.Я закончил проектирование.

Пожалуйста, кто-нибудь, помогите мне, как пропинговать веб-адрес или IP-адрес во флэш-памяти.

Мне нужен пример кода. Я использую Flash CS3

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

Короче говоря, вы не можете.

Дольше: вы не сможете пинговать, потому что пинг на самом деле является пакетом ICMP, и я не верю, что Flash может их отправлять.Если на компьютере, на котором вы пытаетесь пропинговать, работает какая-либо служба UDP или TCP, а на компьютере запущен сервер политики , то вы сможете использовать Socket класс для непосредственного подключения к этому сервису (который может действовать как пинг).

4 голосов
/ 06 мая 2011

Что вы имеете в виду, когда у вас есть все компоненты на экране, и вы должны пинговать каждый компонент раз в минуту?

Если под пингом вы подразумеваете приложение, которое проверяет время-ответ 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 и слушает ответ. Если status равно 200, то получен успешный «пинг». Или понг.

С другой стороны, вы всегда можете запустить программу ping на стороне сервера и управлять ею с помощью flash.

Если вы имеете в виду приложение, например, метод загрузки-загрузки-ускорения, которое также начинается с чего-то подобного, а скорее с Loader объекта.

Надеюсь, это поможет.

EDIT:

Предотвращая проблемы с кешем, вы можете использовать:

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

Теперь эта страница может не возвращать точное содержание сайта, но может быть достаточно хорошей, чтобы оценить время отклика. Со вспышкой.

Таким образом, в целом, это может очистить кэш и загружать сайт каждый раз, чтобы дать лучший результат.

...