Пакет | flash.net |
Класс | public class Socket |
Наследование | Socket EventDispatcher Object |
Реализует | IDataInput, IDataOutput |
Подклассы | SecureSocket |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Класс Socket применяется при работе с серверами, использующими двоичные протоколы.
Для использования методов класса Socket, необходимо сначала создать объект Socket с помощью конструктора new Socket
.
Сокет передает и получает данные асинхронно.
В одних операционных системах метод flush() автоматически вызывается между кадрами выполнения, а в других, таких как Windows, данные никогда не отправляются, пока в коде не будет вызван метод flush()
. Чтобы обеспечить надежное поведение приложения во всех операционных системах, рекомендуется вызывать метод flush()
после записи каждого сообщения (или связанной группы данных) в сокет.
В Adobe AIR объекты Socket также создаются, когда прослушивающий экземпляр ServerSocket получает подключение от внешнего процесса. Объект Socket, представляющий подключение, отправляется в событии ServerSocketConnectEvent. Приложение должно поддерживать ссылку на объект Socket. В противном случае объект Socket подлежит сборке мусора и может быть без предупреждения уничтожен во время выполнения.
Содержимое SWF, выполняемое в изолированной среде безопасности, локальной для файловой системой, не может использовать сокеты.
Файлы политик сокетов на целевом узле определяют узлы, с которых SWF-файлы могут создавать подключения к сокетам, а также порты, доступные для таких подключений. В нескольких последних версиях Flash Player были ужесточены требования по безопасности относительно файлов политик сокетов. Компания Adobe рекомендует использовать файл политик для сокетов для всех версий Flash Player, а в некоторых случаях его применение является обязательным. Поэтому, если используются объекты Socket, проследите, чтобы целевой узел при необходимости предоставлял файл политик для сокетов.
В следующем списке приводятся все требования к файлам политик сокетов для разных версий Flash Player.
- В Flash Player 9.0.124.0 и более поздних версиях файл политик для сокетов является обязательным для любого подключения Socket. Другими словами, файл политик для сокетов обязательно должен быть на целевом узле независимо от того, к какому порту выполняется подключение. Этот файл должен быть, даже если устанавливается подключение к порту на том же узле, на котором находится SWF-файл.
- В приложении Flash Player 9.0.115.0 и более ранних версиях файл политик для сокетов на целевом узле является обязательным, если устанавливается подключение к порту с номером меньше 1024 или если требуется подключиться не к тому узлу, на котором размещен SWF-файл.
- В Flash Player 9.0.115.0 при использовании отладочной версии проигрывателя в случае отсутствия файла политик для сокетов на целевом сервере отображается предупреждение, даже если файл политик для сокетов не является обязательным.
- В AIR файл политики сокетов не является обязательным для содержимого, выполняемого в изолированной среде безопасности приложения. Файлы политик сокетов являются обязательными для любого подключения к сокету, устанавливаемого содержимым, выполняемым за пределами изолированной среды безопасности приложения AIR.
Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
bytesAvailable : uint [только для чтения]
Число байт данных, доступных для чтения во входном буфере. | Socket | ||
bytesPending : uint [только для чтения]
Указывает количество байт, оставшихся в буфере записи. | Socket | ||
connected : Boolean [только для чтения]
Определяет, подключен ли в настоящий момент этот объект Socket. | Socket | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
endian : String
Указывает порядок байтов для данных. | Socket | ||
localAddress : String [только для чтения]
IP-адрес, с которым связан этот сокет, на локальном компьютере. | Socket | ||
localPort : int [только для чтения]
Порт, с которым связан этот сокет, на локальном компьютере. | Socket | ||
objectEncoding : uint
Управляет версией AMF, применяемой при записи или чтении объекта. | Socket | ||
remoteAddress : String [только для чтения]
IP-адрес удаленного компьютера, к которому подключен этот сокет. | Socket | ||
remotePort : int [только для чтения]
Порт на удаленном компьютере, к которому подключен этот сокет. | Socket | ||
timeout : uint
Указывает время ожидания подключения в миллисекундах. | Socket |
Метод | Определено | ||
---|---|---|---|
Создает новый объект Socket. | Socket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Закрывает сокет. | Socket | ||
Подключает сокет к заданному узлу и порту. | Socket | ||
Посылает событие в поток событий. | EventDispatcher | ||
Очищает любые накопленные данные в выходном буфере сокета. | Socket | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Считывает из сокета логическое значение. | Socket | ||
Считывает из сокета байт со знаком. | Socket | ||
Считывает из сокета число байт данных, заданное параметром length. | Socket | ||
Считывает из сокета число IEEE 754 двойной точности с плавающей запятой. | Socket | ||
Считывает из сокета число IEEE 754 одинарной точности с плавающей запятой. | Socket | ||
Считывает из сокета 32-разрядное целое число со знаком. | Socket | ||
Считывает многобайтовую строку из потока байт с использованием заданного набора знаков. | Socket | ||
readObject():*
Считывает объект из сокета, зашифрованного в сериализованный формат AMF. | Socket | ||
Считывает из сокета 16-разрядное целое число со знаком. | Socket | ||
Считывает из сокета байт без знака. | Socket | ||
Считывает из сокета 32-разрядное целое число без знака. | Socket | ||
Считывает из сокета 16-разрядное целое число без знака. | Socket | ||
Считывает из сокета строку UTF-8. | Socket | ||
Считывает из сокета число байт данных UTF-8, заданное параметром length и возвращает строку. | Socket | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher | ||
Записывает логическое значение в сокет. | Socket | ||
Записывает байт в сокет. | Socket | ||
Записывает последовательность байт из заданного массива байт. | Socket | ||
Записывает в сокет число IEEE 754 двойной точности с плавающей запятой. | Socket | ||
Записывает в сокет число IEEE 754 одинарной точности с плавающей запятой. | Socket | ||
Записывает в сокет 32-разрядное целое число со знаком. | Socket | ||
Записывает многобайтовую строку из потока байт с использованием заданного набора знаков. | Socket | ||
Записывает объект в сокет в сериализованном формате AMF. | Socket | ||
Записывает в сокет 16-разрядное целое число. | Socket | ||
Записывает в сокет 32-разрядное целое число без знака. | Socket | ||
Записывает следующие данные в сокет: 16-разрядное целое число без знака, указывающее на длину заданной строки UTF-8 в байтах, а затем саму строку. | Socket | ||
Записывает строку UTF-8 в сокет. | Socket |
Событие | Сводка | Определено | ||
---|---|---|---|---|
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | |||
Отправляется, когда сервер закрывает подключение к сокету. | Socket | |||
Отправляется после установления сетевого подключения. | Socket | |||
[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | |||
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или загрузки. | Socket | |||
Передается при перемещении данных сокетом из буфера записи на уровень сетевого транспорта | Socket | |||
Отправляется, если метод Socket.connect() предпринимает попытку подключиться к серверу, который запрещен изолированной средой безопасности вызывающего приложения, или к порту с номером меньше 1024, когда нет файла политики сокетов, разрешающего такое подключение. | Socket | |||
Отправляется, когда сокет получает данные. | Socket |
bytesAvailable | свойство |
bytesAvailable:uint
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Число байт данных, доступных для чтения во входном буфере.
В вашем коде должен быть вызов свойства bytesAvailable
, проверяющий доступность необходимого объема данных до того, как вы попытаетесь сосчитать их с помощью одного из методов read
.
Реализация
public function get bytesAvailable():uint
bytesPending | свойство |
bytesPending:uint
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11, AIR 3.0 |
Указывает количество байт, оставшихся в буфере записи.
Используйте это свойство вместе с OutputProgressEvent. Событие OutputProgressEvent отправляется каждый раз при записи данных из буфера записи в сетевое местоположение. В обработчике события можно проверить bytesPending
, чтобы узнать, сколько данных осталось в буфере и ожидает записи. Когда bytesPending
возвращает 0, это значит, что все данные переданы из буфера записи в сетевое местоположение и теперь можно удалять обработчики событий, обнулять ссылки на сокеты, начинать следующую отправку в очереди и т.д.
Реализация
public function get bytesPending():uint
Связанные элементы API
connected | свойство |
connected:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, подключен ли в настоящий момент этот объект Socket. Вызов этого свойства возвращает значение true
, если сокет в настоящий момент подключен, или значение false
, если не подключен.
Реализация
public function get connected():Boolean
endian | свойство |
endian:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет порядок байтов данных. Возможными значениями являются константы из класса flash.utils.Endian, Endian.BIG_ENDIAN
или Endian.LITTLE_ENDIAN
.
Значением по умолчанию является Endian.BIG_ENDIAN.
Реализация
public function get endian():String
public function set endian(value:String):void
Связанные элементы API
localAddress | свойство |
localPort | свойство |
objectEncoding | свойство |
objectEncoding:uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Управляет версией AMF, применяемой при записи или чтении объекта.
Реализация
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Связанные элементы API
remoteAddress | свойство |
remoteAddress:String
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
IP-адрес удаленного компьютера, к которому подключен этот сокет.
С помощью этого свойства можно определить IP-адрес клиентского сокета, отправленный объектом ServerSocket в событии ServerSocketConnectEvent. Если потребуется, используйте класс DNSResolver для преобразования IP-адреса в имя домена.
Реализация
public function get remoteAddress():String
Связанные элементы API
remotePort | свойство |
remotePort:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Порт на удаленном компьютере, к которому подключен этот сокет.
С помощью этого свойства можно определить номер порта клиентского сокета, отправленный объектом ServerSocket в событии ServerSocketConnectEvent.
Реализация
public function get remotePort():int
Связанные элементы API
timeout | свойство |
timeout:uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Указывает время ожидания подключения в миллисекундах.
Если подключение не будет установлено в течение заданного срока, попытка завершается ошибкой. Значение по умолчанию: 20,000 (двадцать секунд).
Реализация
public function get timeout():uint
public function set timeout(value:uint):void
Socket | () | Конструктор |
public function Socket(host:String = null, port:int = 0)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает новый объект Socket. Если не указаны никакие параметры, создается первоначально отключенный сокет. Если параметры указаны, производится попытка подключиться к указанному узлу и порту.
Примечание. Настоятельно рекомендуется использовать форму конструктора без параметров, затем добавить любые прослушиватели событий, после чего вызвать метод connect
с параметрами host
и port
. Эта последовательность гарантирует правильную работу всех приемников событий.
host:String (default = null ) — Полностью определенное имя домена DNS или IP-адрес. Адреса IPv4 указываются с использованием десятичного представления с разделителем-точкой, например 192.0.2.0. В приложении Flash Player 9.0.115.0 и AIR 1.0 и более поздней версии можно задать IPv6-адреса в шестнадцатеричном представлении с двоеточием, например 2001:db8:ccc3:ffff:0:444d:555e:666f. Также можно указать null , чтобы подключиться к серверу узла, на котором размещен рассматриваемый SWF-файл. Если SWF-файл, инициирующий данный вызов, запущен в веб-обозревателе, то в параметре host должен указываться тот же домен, в котором находится SWF-файл.
| |
port:int (default = 0 ) — Номер TCP-порта на целевом узле, используемый для установки подключения. Для Flash Player 9.0.124.0 и более поздних версий на целевом узле должен быть файл политик для сокетов, разрешающий подключения к сокетам через указанный порт для узла, на котором размещен SWF-файл. Для более ранних версий Flash Player файл политик для сокетов является обязательным, только если требуется подключиться к порту с номером ниже 1024 или если SWF-файл находится не на том узле, к которому выполняется подключение.
|
События
connect: — Отправляется после установления сетевого подключения.
| |
ioError: — Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою подключения.
| |
securityError: —
Отправляется, если вызов Socket.connect() пытается установить подключение к серверу, на котором нет файла политик для сокетов, либо к серверу, на котором файл политик для сокетов не предоставляет вызывающему узлу доступ к указанному порту. Дополнительные сведения о файлах политик см. в главе «Элементы управления веб-сайтом (файлы политики)» в Руководстве разработчика по ActionScript 3.0, а также в разделе центра разработчиков Flash Player Developer Center: Безопасность.
|
Выдает
SecurityError — Эта ошибка возникает в содержимом SWF по следующим причинам:
|
close | () | метод |
public function close():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Закрывает сокет. После вызова метода close()
вы не сможете считать или записать какие-либо данные.
Событие close
отправляется только в тот момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода close()
.
Для повторного использования объекта Socket снова вызовите для него метод connect()
.
Выдает
IOError — Не удалось закрыть сокет или сокет не был открыт.
|
connect | () | метод |
public function connect(host:String, port:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Подключает сокет к заданному узлу и порту.
Мгновенный сбой подключения приводит к отправке события или созданию исключения: если узел был указан, отправляется событие ошибки, а если узел не был указан, то создается исключение. В противном случае, состояние подключения сообщается посредством события. Если сокет уже подключен, то сначала закрывается именно существующее подключение.
Параметры
host:String — Имя или IP-адрес узла, к которому нужно подключиться. Если узел не указан, то обращение производится к тому узлу, на котором размещен вызывающий файл. Если узел не указан, для определения успешности подключения используйте прослушиватель событий.
| |
port:int — Номер порта для подключения.
|
События
connect: — Отправляется после установления сетевого подключения.
| |
ioError: — Отправляется, если узел указан, но возникает ошибка ввода-вывода, вызывающая сбой подключения.
| |
securityError: — Отправляется, если вызов Socket.connect() пытается установить подключение к серверу, на котором нет файла политик для сокетов, либо к серверу, на котором файл политик для сокетов не предоставляет вызывающему узлу доступ к указанному порту. Дополнительные сведения о файлах политик см. в главе «Элементы управления веб-сайтом (файлы политики)» в Руководстве разработчика по ActionScript 3.0, а также в разделе центра разработчиков Flash Player Developer Center: Безопасность.
|
Выдает
IOError — Сбой подключения, так как не был указан узел.
| |
SecurityError — Эта ошибка возникает в содержимом SWF по следующим причинам:
|
flush | () | метод |
public function flush():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Очищает любые накопленные данные в выходном буфере сокета.
В одних операционных системах метод flush() автоматически вызывается между кадрами выполнения, а в других, таких как Windows, данные никогда не отправляются, пока в коде не будет вызван метод flush()
. Чтобы обеспечить надежное поведение приложения во всех операционных системах, рекомендуется вызывать метод flush()
после записи каждого сообщения (или связанной группы данных) в сокет.
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readBoolean | () | метод |
public function readBoolean():Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета логическое значение. После считывания одного байта метод возвращает true
, если этот байт ненулевой, в противном случае, возвращается значение false
.
Boolean — Значение равно true , если считывается ненулевой байт, в противном случае используется значение false .
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readByte | () | метод |
public function readByte():int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета байт со знаком.
Возвращаетint — Значение в диапазоне от -128 до 127.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readBytes | () | метод |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета число байт данных, заданное параметром length. Байты считываются в указанный байтовый массив, при этом начальная позиция указывается в параметре offset
.
Параметры
bytes:ByteArray — Объект ByteArray, в который считываются данные.
| |
offset:uint (default = 0 ) — Смещение, с которого должно начинаться считывание данных в байтовом массиве.
| |
length:uint (default = 0 ) — Число байтов для считывания. Если значение по умолчанию равно 0, считываются все доступные данные.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readDouble | () | метод |
public function readDouble():Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета число IEEE 754 двойной точности с плавающей запятой.
ВозвращаетNumber — Число IEEE 754 двойной точности с плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readFloat | () | метод |
public function readFloat():Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета число IEEE 754 одинарной точности с плавающей запятой.
ВозвращаетNumber — Число IEEE 754 одинарной точности с плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readInt | () | метод |
public function readInt():int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета 32-разрядное целое число со знаком.
Возвращаетint — Значение в диапазоне от -2147483648 до 2147483647.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readMultiByte | () | метод |
public function readMultiByte(length:uint, charSet:String):String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Параметры
length:uint — Число считываемых из потока байтов.
| |
charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: shift_jis , CN-GB и iso-8859-1 . Полный список см. в разделе Поддерживаемые наборы символов.
Примечание. Если текущая система не распознает значение параметра |
String — Строка в кодировке UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readObject | () | метод |
public function readObject():*
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает объект из сокета, зашифрованного в сериализованный формат AMF.
Возвращает* — Десериализованный объект
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
readShort | () | метод |
public function readShort():int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета 16-разрядное целое число со знаком.
Возвращаетint — Значение в диапазоне от -32768 до 32767.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readUnsignedByte | () | метод |
public function readUnsignedByte():uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета байт без знака.
Возвращаетuint — Значение в диапазоне от 0 до 255.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readUnsignedInt | () | метод |
public function readUnsignedInt():uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета 32-разрядное целое число без знака.
Возвращаетuint — Значение в диапазоне от 0 до 4294967295.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readUnsignedShort | () | метод |
public function readUnsignedShort():uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета 16-разрядное целое число без знака.
Возвращаетuint — Значение в диапазоне от 0 до 65535.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readUTF | () | метод |
public function readUTF():String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным коротким целым числом, указывающим длину в байтах.
ВозвращаетString — Строка UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
readUTFBytes | () | метод |
public function readUTFBytes(length:uint):String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из сокета число байт данных UTF-8, заданное параметром length
и возвращает строку.
Параметры
length:uint — Число байтов для считывания.
|
String — Строка UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
writeBoolean | () | метод |
public function writeBoolean(value:Boolean):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает логическое значение в сокет. Данный метод записывает один байт со значением 1 (true
) или 0 (false
).
Параметры
value:Boolean — Значение, записываемое в сокете: 1 (true ) или 0 (false ).
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeByte | () | метод |
public function writeByte(value:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает байт в сокет.
Параметры
value:int — Значение, записываемое в сокет. Используются 8 младших битов значения, а 24 старших бита игнорируются.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeBytes | () | метод |
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает последовательность байт из заданного массива байт. Операция записи начинается в позиции, указанной в offset
.
Если будет опущен параметр length
, применение длины по умолчанию, равной 0, приведет к тому, что метод будет записывать весь буфер, начиная со смещения offset
.
Если также опустить параметр offset
, будет записываться весь буфер.
Параметры
bytes:ByteArray — Объект ByteArray, из которого должны записываться данные.
| |
offset:uint (default = 0 ) — Нулевое смещение в объекте ByteArray bytes , с которого должна начаться запись данных.
| |
length:uint (default = 0 ) — Число записываемых байтов. Использование значения по умолчанию, равного 0, приводит к записи всего буфера, начиная со значения, указанного параметром offset .
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
| |
RangeError — Если значение offset превышает длину массива ByteArray, указанную в свойстве bytes или если сумма данных, указанная для записи в свойстве offset вместе со значением length превышает доступные данные.
|
Связанные элементы API
writeDouble | () | метод |
public function writeDouble(value:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в сокет число IEEE 754 двойной точности с плавающей запятой.
Параметры
value:Number — Значение, записываемое в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeFloat | () | метод |
public function writeFloat(value:Number):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в сокет число IEEE 754 одинарной точности с плавающей запятой.
Параметры
value:Number — Значение, записываемое в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeInt | () | метод |
public function writeInt(value:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в сокет 32-разрядное целое число со знаком.
Параметры
value:int — Значение, записываемое в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeMultiByte | () | метод |
public function writeMultiByte(value:String, charSet:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Параметры
value:String — Записываемое значение строки.
| |
charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: shift_jis , CN-GB и iso-8859-1 . Полный список см. в разделе Поддерживаемые наборы символов.
|
Связанные элементы API
writeObject | () | метод |
public function writeObject(object:*):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает объект в сокет в сериализованном формате AMF.
Параметры
object:* — Объект для сериализации.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeShort | () | метод |
public function writeShort(value:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в сокет 16-разрядное целое число. Записанные байты выглядят следующим образом:
(v >> 8) & 0xff v & 0xff
Используются 16 младших битов параметра, а 16 старших битов игнорируются.
Параметры
value:int — Значение, записываемое в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeUnsignedInt | () | метод |
public function writeUnsignedInt(value:uint):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает в сокет 32-разрядное целое число без знака.
Параметры
value:uint — Значение, записываемое в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeUTF | () | метод |
public function writeUTF(value:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает следующие данные в сокет: 16-разрядное целое число без знака, указывающее на длину заданной строки UTF-8 в байтах, а затем саму строку.
Перед тем как записать строку, метод рассчитывает количество байтов, необходимое для представления всех символов строки.
Параметры
value:String — Строка, записываемая в сокет.
|
Выдает
RangeError — Длина превышает 65535.
| |
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
writeUTFBytes | () | метод |
public function writeUTFBytes(value:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Записывает строку UTF-8 в сокет.
Параметры
value:String — Строка, записываемая в сокет.
|
Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
|
Связанные элементы API
close | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.CLOSE
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется, когда сервер закрывает подключение к сокету.
Событие close
отправляется только в тот момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода Socket.close()
.
Event.CLOSE
определяет значение свойства type
объекта события close
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, для которого разорвано подключение. |
connect | Событие |
flash.events.Event
свойство Event.type =
flash.events.Event.CONNECT
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется после установления сетевого подключения.
КонстантаEvent.CONNECT
определяет значение свойства type
объекта события connect
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект Socket или XMLSocket, установивший сетевое подключение. |
ioError | Событие |
flash.events.IOErrorEvent
свойство IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или загрузки.
Задает значение свойстваtype
для объекта события ioError
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
errorID | Ссылочный номер, связываемый с конкретной ошибкой (только AIR). |
target | Сетевой объект, с которым произошла ошибка ввода/вывода. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
outputProgress | Событие |
flash.events.OutputProgressEvent
Передается при перемещении данных сокетом из буфера записи на уровень сетевого транспорта
securityError | Событие |
flash.events.SecurityErrorEvent
свойство SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется, если метод Socket.connect()
предпринимает попытку подключиться к серверу, который запрещен изолированной средой безопасности вызывающего приложения, или к порту с номером меньше 1024, когда нет файла политики сокетов, разрешающего такое подключение.
Примечание. В приложении AIR содержимое, выполняемое внутри изолированной среды безопасности этого приложения, получает разрешение на подключение к любому серверу и порту без даже файла политики сокетов.
КонстантаSecurityErrorEvent.SECURITY_ERROR
определяет значение свойства type
для объекта события securityError
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, сообщающий об ошибке безопасности. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
Связанные элементы API
socketData | Событие |
flash.events.ProgressEvent
свойство ProgressEvent.type =
flash.events.ProgressEvent.SOCKET_DATA
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется, когда сокет получает данные.
Данные, полученные сокетом, остаются в нем, пока не будут прочитаны. Необязательно считывать все доступные данные при обработке этого события.
В событиях типа socketData
не используется свойство ProgressEvent.bytesTotal
.
type
для объекта события socketData
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий событие. |
bytesLoaded | Число элементов или байтов, загруженных на момент обработки события прослушивателем. |
bytesTotal | 0; это свойство не используется объектами события socketData . |
target | Сокет, сообщающий сведения о прогрессе. |
- Конструктор создает экземпляр
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 { private var socket:CustomSocket; public function SocketExample() { socket = 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(); } }
Tue Jun 12 2018, 11:34 AM Z