Показать сообщение отдельно
Старый 03.01.2014, 23:45
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 5  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Если у вас на 843 порту сервера висит и слушает секьюрный скрипт, вроде того, что я привел, то достаточно на клиенте выполнить следующее:
Код AS3:
// Создаем сокет
_socket = new Socket();
// Определяем порядок байт
_socket.endian = Endian.LITTLE_ENDIAN;
// Добавляем прослушку события подключения. Только после наступления
// этого события можно слать/принимать данные.
_socket.addEventListener(Event.CONNECT, connectHandler);
// Добавляем прослушку прочих событий.
_socket.addEventListener(Event.CLOSE, closeHandler);
_socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
 
// Начинаем установку соединения. Здесь _port - это не 843, а уже целевой
// порт сервера (например, 8010, в вашем случае).
_socket.connect(_host, _port);
 
// Функция connectHandler выглядит примерно так:
function connectHandler(e:Event):void 
{
	// Здесь просто вывод сообщения о том, что соединение установлено.
	Debug.out("Connection established.");
}
То есть, как видите, вызов Security.loadPolicyFile("xmlsocket://localhost:843") не нужен. Честно признаться, я не знаю зачем он нужен, кто знает расскажет. После вызова метода _socket.connect Flash Player самостоятельно постучится на 843 порт и спросит файл политик. Удовлетворившись, он уже подключится на целевой порт, и после удачной установки соединения бросит событие Event.CONNECT, которое мы как раз и слушаем.