PDA

Просмотр полной версии : XMLSocket + Security


DRAGOnoid
19.11.2007, 21:33
Добрый вечер. Наткнулся на такую проблему.
Есть класс XMLSocket про который можно почитать в хелпе, там же сть приме по его использованию.

однако если hostName написать какой нить ошибочный IP или ошибочный Порт, то никаких ошибок не вылезает.

Не скажете ли вы как отловить ошибку при неправильном соединении. или ошибку получения Policy файла?

короче говоря как отловить ошибку такого скрипта
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.XMLSocket;

public class XMLSocketExample extends Sprite {
private var socket:XMLSocket;
public function XMLSocketExample() {
this.socket = new XMLSocket();
socket.connect("222.2.222.2", "22222");
}
}
}

а то ошибки срабатывают только для существующих хостов.

artcraft
20.11.2007, 00:49
перед сторокой socket.connect(...) надо повесить пару листнеров

http://livedocs.adobe.com/flex/201/langref/flash/net/XMLSocket.html#eventSummary
securityError
Dispatched if a call to the XMLSocket.connect() method attempts to connect either to a server outside the caller's security sandbox or to a port lower than 1024.

DRAGOnoid
20.11.2007, 02:00
короче я понял юмор - ошибки срабатывают только тогда, когда IP хост пингуется. Если же сервер в дауне и не отвечает - то глухо всё.

в общем могут быть проблемы если писать приложение на сокетах а сервер вдруг будет в дауне, даже ошибку не отловиш.
разве что опять сделать всё с помощью молока и мака.
а точнее поставить таймер =)

$mival
20.11.2007, 09:36
ну а что противозаконного в этом? поставь таймлимит секунд на 30 и генерируй ошибку если нет ответа.

DRAGOnoid
20.11.2007, 10:49
не 30 секунд перебор - 3х выше крыши хватит, а противозаконного ничего нет - просто лично я считаю это очередной недоделкой языка =(
и за последние 3 дня наткнулся на несколько подобных и даже нерешаемых проблем.