Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Класс Socket позволяет коду ActionScript создавать подключения к сокету, а также считывать и записывать необработанные двоичные данные. Он схож с XMLSocket, но не требует четкого формата полученных или переданных данных.
Класс Socket применяется при работе с серверами, использующими двоичные протоколы.
Для того чтобы использовать методы класса Socket, необходимо сначала создать объект Socket с помощью конструктора new Socket
.
SWF-файлам в изолированной программной среде, локальной для файловой системы, запрещено использовать сокеты.
Файлы политик сокетов на целевом узле определяют узлы, с которых SWF-файлы могут создавать подключения к сокетам, а также порты, доступные для таких подключений. В нескольких последних версиях Flash Player были ужесточены требования по безопасности относительно файлов политик сокетов. Компания Adobe рекомендует использовать файл политик для сокетов для всех версий Flash Player, а в некоторых случаях его применение является обязательным. Поэтому, если используются объекты XMLSocket, проследите, чтобы целевой узел при необходимости предоставлял файл политик для сокетов.
В следующем списке приводятся все требования к файлам политик сокетов для разных версий Flash Player.
- В Flash Player 9.0.124.0 и более поздних версиях файл политик для сокетов является обязательным для любого подключения Socket. Другими словами, файл политик для сокетов обязательно должен быть на целевом узле независимо от того, к какому порту выполняется подключение. Этот файл должен быть, даже если устанавливается подключение к порту на том же узле, на котором находится SWF-файл.
- В Flash Player 9.0.115.0 и более ранних версиях файл политик для сокетов на целевом узле является обязательным, если устанавливается подключение к порту с номером меньше 1024 или если требуется подключиться не к тому узлу, на котором размещен SWF-файл.
- В Flash Player 9.0.115.0 при использовании отладочной версии проигрывателя в случае отсутствия файла политик для сокетов на целевом сервере отображается предупреждение, даже если файл политик для сокетов не является обязательным.
Дополнительные сведения о безопасности см. в следующих ресурсах.
Посмотреть примеры
bytesAvailable:uint
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число байт данных, доступных для чтения во входном буфере.
В вашем коде должен быть вызов свойства bytesAvailable
, проверяющий доступность необходимого объема данных до того, как вы попытаетесь сосчитать их с помощью одного из методов read
.
Реализация public function get bytesAvailable():uint
connected:Boolean
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, подключен ли в настоящий момент этот объект Socket. Вызов этого свойства возвращает значение true
, если сокет в настоящий момент подключен, или значение false
, если не подключен.
Реализация public function get connected():Boolean
endian:String
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет порядок байтов данных. Возможными значениями являются константы из класса flash.utils.Endian class, Endian.BIG_ENDIAN
или Endian.LITTLE_ENDIAN
.
Значение по умолчанию Endian.BIG_ENDIAN
Реализация public function get endian():String
public function set endian(value:String):void
См. также
objectEncoding:uint
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Управляет версией AMF, применяемой при записи или чтении объекта.
Реализация public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
См. также
timeout:uint
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Указывает время ожидания подключения в миллисекундах.
Если подключение не будет установлено в течение заданного срока, попытка завершается ошибкой. Значение по умолчанию 10,000 (десять секунд).
Реализация public function get timeout():uint
public function set timeout(value:uint):void
public function Socket(host:String = null, port:int = 0)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект Socket. Если не указаны никакие параметры, создается первоначально отключенный сокет. Если параметры указаны, производится попытка подключиться к указанному узлу и порту.
Примечание. Настоятельно рекомендуется использовать форму конструктора без параметров, затем добавить любые прослушиватели событий, после чего вызвать метод connect
с параметрами host
и port
. Это гарантирует парольную работу всех прослушивателей событий.
Параметры | host:String (default = null ) — Полностью определенное имя домена DNS или IP-адрес в формате 111.222.333.444. Также можно указать null , чтобы подключиться к серверу узла, на котором размещен рассматриваемый SWF-файл. Если SWF-файл, инициирующий данный вызов, запущен в веб-обозревателе, то в параметре host должен указываться тот же домен, в котором находится SWF-файл.
|
|
| port:int (default = 0 ) — Номер TCP-порта на целевом узле, используемый для установки подключения. Для Flash Player 9.0.124.0 и более поздних версий на целевом узле должен быть файл политик для сокетов, разрешающий подключения к сокетам через указанный порт для узла, на котором размещен SWF-файл. Для более ранних версий Flash Player файл политик для сокетов является обязательным, только если требуется подключиться к порту с номером ниже 1024 или если SWF-файл находится не на том узле, к которому выполняется подключение.
|
События | connect:Event — Отправляется после установления сетевого подключения. |
|
| ioError:IOErrorEvent — Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою подключения. |
|
| securityError:SecurityErrorEvent — Отправляется, если вызов Socket.connect() пытается установить подключение к серверу, на котором нет файла политик для сокетов, либо к серверу, на котором файл политик для сокетов не предоставляет вызывающему узлу доступ к указанному порту. Подробные сведения о файлах политик для сокетов см. в главе "Система безопасности проигрывателя Flash Player" руководства Программирование на ActionScript 3.0. |
Выдает | SecurityError — Данная ошибка возникает по следующим причинам:
- Локальные ненадежные SWF-файлы изолированы от Интернета. Данную проблему можно обойти, если переклассифицировать этот SWF-файл как "local-with-networking" или доверенный.
- Не допускается указывать номер порта сокета выше 65535.
|
public function close():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Закрывает сокет. После вызова метода close()
вы не сможете считать или записать какие-либо данные.
Событие close
отправляется только в том момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода close()
.
Для повторного использования объекта Socket снова вызовите для него метод connect()
.
Выдает | IOError — Не удалось закрыть сокет или сокет не был открыт.
|
public function connect(host:String, port:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Подключает сокет к заданному узлу и порту. Мгновенный сбой подключения приводит к отправке события или созданию исключения: если узел был указан, отправляется событие, а если узел не был указан, то создается исключение. В противном случае, состояние подключения сообщается посредством события. Если сокет уже подключен, то сначала закрывается именно существующее подключение.
Параметры
| host:String — Имя или IP-адрес узла, к которому нужно подключиться. Если узел не указан, то обращение производится к тому узлу, на котором размещен вызывающий SWF-файл. Если узел не указан, для определения успешности подключения используйте прослушиватель событий.
|
|
| port:int — Номер порта для подключения.
|
События | connect:Event — Отправляется после установления сетевого подключения. |
|
| ioError:IOErrorEvent — Отправляется, если узел указан, но возникает ошибка ввода-вывода, вызывающая сбой подключения. |
|
| securityError:SecurityErrorEvent — Отправляется, если вызов Socket.connect() пытается установить подключение к серверу, на котором нет файла политик для сокетов, либо к серверу, на котором файл политик для сокетов не предоставляет вызывающему узлу доступ к указанному порту. Дополнительную информацию см. в главе "Безопасность Flash Player" руководства Программирование на ActionScript 3.0. |
Выдает | IOError — Сбой подключения, так как не был указан узел.
|
|
| SecurityError — Данная ошибка возникает по следующим причинам:
- Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Этого можно избежать, если переклассифицировать этот SWF-файл как "local-with-networking" или доверенный.
- Не допускается указывать номер порта сокета выше 65535.
- На HTML-странице с SWF-cодержимым для параметра
allowNetworking тегов object и embed устанавливается значение none .
|
public function flush():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Очищает любые накопленные данные в выходном буфере сокета. Данные, записанные методом write
, передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readBoolean():Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета логическое значение. После считывания одного байта метод возвращает true
, если этот байт ненулевой, в противном случае, возвращается значение false
.
Возвращает | Boolean — Значение равно true , если считывается ненулевой байт, в противном случае используется значение false .
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readByte():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета байт со знаком.
Возвращает | int — Значение в диапазоне от -128 до 127.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета число байт данных, заданное параметром length
. Байты считываются в указанный байтовый массив, при этом начальная позиция указывается в параметре offset
.
Параметры
| bytes:ByteArray — Объект ByteArray, в который считываются данные.
|
|
| offset:uint (default = 0 ) — Смещение, с которого должно начинаться считывание данных в байтовом массиве.
|
|
| length:uint (default = 0 ) — Число байт для считывания. Если значение по умолчанию равно 0, считываются все доступные данные.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readDouble():Number
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета число IEEE 754 с двойной точностью и плавающей запятой.
Возвращает | Number — Число IEEE 754 с двойной точностью и плавающей запятой.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readFloat():Number
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета число IEEE 754 с одинарной точностью и плавающей запятой.
Возвращает | Number — Число IEEE 754 с одинарной точностью и плавающей запятой.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readInt():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета 32-разрядное целое число со знаком.
Возвращает | int — Значение в диапазоне от -2147483648 до 2147483647.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readMultiByte(length:uint, charSet:String):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Параметры
| length:uint — Число считываемых из потока байтов.
|
|
| charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis" , "CN-GB" и "iso-8859-1" . Полный список см. в разделе Поддерживаемые наборы символов.
Примечание. Если текущая система не распознает значение параметра charSet , то в качестве набора символов проигрыватель Flash Player будет использовать кодовую страницу по умолчанию. Например, значение параметра charSet , например в myTest.readMultiByte(22, "iso-8859-01") , которое использует 01 вместо 1 может работать на вашем компьютере, но привести к сбою на другой рабочей станции. На другом компьютере проигрыватель Flash Player будет использовать кодовую страницу, заданную по умолчанию в системе.
|
Возвращает | String — Строка в кодировке UTF-8.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readObject():*
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает объект из сокета, зашифрованного в сериализованный формат AMF.
Возвращает | * — Десериализованный объект
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function readShort():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета 16-разрядное целое число со знаком.
Возвращает | int — Значение в диапазоне от -32768 до 32767.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readUnsignedByte():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета байт без знака.
Возвращает | uint — Значение в диапазоне от 0 до 255.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readUnsignedInt():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета 32-разрядное целое число без знака.
Возвращает | uint — Значение в диапазоне от 0 до 4294967295.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readUnsignedShort():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета 16-разрядное целое число без знака.
Возвращает | uint — Значение в диапазоне от 0 до 65535.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readUTF():String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным коротким целым числом, указывающим длину в байтах.
ВозвращаетВыдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function readUTFBytes(length:uint):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из сокета число байт данных UTF-8, заданное параметром length
и возвращает строку.
Параметры
| length:uint — Число байт для считывания.
|
ВозвращаетВыдает | EOFError — Недостаточно данных, доступных для чтения.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
public function writeBoolean(value:Boolean):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает логическое значение в сокет. Данный метод записывает один байт со значением 1 (true
) или 0 (false
).
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:Boolean — Значение, записываемое в сокете: 1 (true ) или 0 (false ).
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeByte(value:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает байт в сокет.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:int — Значение, записываемое в сокет. Используются 8 младших битов значения, а 24 старших бита игнорируются.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает последовательность байт из заданного массива байт. Операция записи начинается в позиции, указанной в offset
.
Если будет опущен параметр length
, применение длины по умолчанию, равной 0, приведет к тому, что метод будет записывать весь буфер, начиная со смещения offset
.
Если также опустить параметр offset
, будет записываться весь буфер.
Если параметры offset
или length
находятся за пределами диапазона, то они корректируются, чтобы совпасть с началом и концом массива bytes
.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| bytes:ByteArray — Объект ByteArray, из которого должны записываться данные.
|
|
| offset:uint (default = 0 ) — Нулевое смещение в объекте ByteArray bytes , с которого должна начаться запись данных.
|
|
| length:uint (default = 0 ) — Число записываемых байтов. Использование значения по умолчанию, равного 0, приводит к записи всего буфера, начиная со значения, указанного параметром offset .
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeDouble(value:Number):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает в сокет число IEEE 754 с двойной точностью и плавающей запятой.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:Number — Значение, записываемое в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeFloat(value:Number):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает в сокет число IEEE 754 с одинарной точностью и плавающей запятой.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:Number — Значение, записываемое в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeInt(value:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает в сокет 32-разрядное целое число со знаком.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:int — Значение, записываемое в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeMultiByte(value:String, charSet:String):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:String — Записываемое значение строки.
|
|
| charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis" , "CN-GB" и "iso-8859-1" . Полный список см. в разделе Поддерживаемые наборы символов.
|
См. также
public function writeObject(object:*):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает объект в сокет в сериализованном формате AMF.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| object:* — объект для сериализации
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeShort(value:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает в сокет 16-разрядное целое число. Записанные байты выглядят следующим образом:
(v >> 8) & 0xff v & 0xff
Используются 16 младших битов параметра, а 16 старших битов игнорируются.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:int — Значение, записываемое в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeUnsignedInt(value:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает в сокет 32-разрядное целое число без знака.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:uint — Значение, записываемое в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeUTF(value:String):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает следующие данные в сокет: 16-разрядное целое число без знака, указывающее на длину заданной строки UTF-8 в байтах, а затем саму строку.
Перед тем как записать строку, метод рассчитывает количество битов, необходимое для представления всех символов строки.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:String — Строка, записываемая в сокет.
|
Выдает | RangeError — Длина превышает 65535.
|
|
| IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
public function writeUTFBytes(value:String):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Записывает строку UTF-8 в сокет.
Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush()
.
Параметры
| value:String — Строка, записываемая в сокет.
|
Выдает | IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
См. также
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.CLOSE
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда сервер закрывает подключение к сокету. Событие close
отправляется только в том момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода Socket.close()
.
Константа
Event.CLOSE
определяет значение свойства
type
объекта события
close
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, для которого разорвано подключение. |
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.CONNECT
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется после установления сетевого подключения.
Константа
Event.CONNECT
определяет значение свойства
type
объекта события
connect
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект Socket или XMLSocket, установивший сетевое подключение. |
Тип объекта события: flash.events.IOErrorEvent
свойство IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или загрузки.
Задает значение свойства
type
для объекта события
ioError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, с которым произошла ошибка ввода/вывода. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
Тип объекта события: flash.events.SecurityErrorEvent
свойство SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, если путем вызова метода Socket.connect()
предпринимается попытка подключения к серверу, лежащему за пределами изолированной среды вызывающего объекта, или к порту с номером, меньшим 1024.
Константа
SecurityErrorEvent.SECURITY_ERROR
определяет значение свойства
type
для объекта события
securityError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, сообщающий об ошибке безопасности. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
См. также
Тип объекта события: flash.events.ProgressEvent
свойство ProgressEvent.type = flash.events.ProgressEvent.SOCKET_DATA
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда сокет получает данные. В событиях типа socketData
не используется свойство ProgressEvent.bytesTotal
.
Задает значение свойства
type
для объекта события
socketData
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий событие. |
bytesLoaded | Число элементов или байт, загруженных на момент обработки события прослушивателем. |
bytesTotal | 0; это свойство не используется объектами события socketData . |
target | Объект Socket, сообщающий сведения о прогрессе. |
В следующем примере рассматриваются операции записи и чтения на сокете, а также вывод информации, переданной во время событий сокета. Основные моменты данного примера представлены ниже:
- Конструктор создает экземпляр
CustomSocket
с именем socket
и передает в качестве аргументов имя узла localhost
и порт 80. Так как CustomSocket
расширяет Socket, вызов метода super()
расширяет конструктор Socket. - Затем в примере вызывается метод
configureListeners()
, добавляющий прослушивателей для событий Socket. - В завершение, вызывается метод
connect()
сокета с именем узла localhost
и номером порта 80.
Примечание. Для запуска данного примера вам потребуется сервер, запущенный в том же домене, где размещен SWF-файл (в данном примере: localhost
), и прослушивающий порт 80.
package {
import flash.display.Sprite;
public class SocketExample extends Sprite {
public function SocketExample() {
var socket:CustomSocket = new CustomSocket("localhost", 80);
}
}
}
import flash.errors.*;
import flash.events.*;
import flash.net.Socket;
class CustomSocket extends Socket {
private var response:String;
public function CustomSocket(host:String = null, port:uint = 0) {
super();
configureListeners();
if (host && port) {
super.connect(host, port);
}
}
private function configureListeners():void {
addEventListener(Event.CLOSE, closeHandler);
addEventListener(Event.CONNECT, connectHandler);
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function writeln(str:String):void {
str += "\n";
try {
writeUTFBytes(str);
}
catch(e:IOError) {
trace(e);
}
}
private function sendRequest():void {
trace("sendRequest");
response = "";
writeln("GET /");
flush();
}
private function readResponse():void {
var str:String = readUTFBytes(bytesAvailable);
response += str;
}
private function closeHandler(event:Event):void {
trace("closeHandler: " + event);
trace(response.toString());
}
private function connectHandler(event:Event):void {
trace("connectHandler: " + event);
sendRequest();
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function socketDataHandler(event:ProgressEvent):void {
trace("socketDataHandler: " + event);
readResponse();
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00