Пакетflash.net
Классpublic class Socket
НаследованиеSocket Inheritance EventDispatcher Inheritance Object
Реализует IDataInput, IDataOutput

Язык версии : 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.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Посмотреть примеры



Общедоступные свойства
 СвойствоОпределено
  bytesAvailable : uint
[только для чтения] Число байт данных, доступных для чтения во входном буфере.
Socket
  connected : Boolean
[только для чтения] Определяет, подключен ли в настоящий момент этот объект Socket.
Socket
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  endian : String
Определяет порядок байт данных. Возможными значениями являются константы из класса flash.utils.Endian class, Endian.BIG_ENDIAN или Endian.LITTLE_ENDIAN.
Socket
  objectEncoding : uint
Управляет версией AMF, применяемой при записи или чтении объекта.
Socket
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  timeout : uint
Указывает время ожидания подключения в миллисекундах.
Socket
Общедоступные методы
 МетодОпределено
  
Socket(host:String = null, port:int = 0)
Создает объект Socket.
Socket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
  
Закрывает сокет.
Socket
  
connect(host:String, port:int):void
Подключает сокет к заданному узлу и порту.
Socket
 Inherited
Передает событие в поток событий.
EventDispatcher
  
Очищает любые накопленные данные в выходном буфере сокета.
Socket
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
Считывает из сокета логическое значение.
Socket
  
Считывает из сокета байт со знаком.
Socket
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Считывает из сокета число байт данных, заданное параметром "длина".
Socket
  
Считывает из сокета число IEEE 754 с двойной точностью и плавающей запятой.
Socket
  
Считывает из сокета число IEEE 754 с одинарной точностью и плавающей запятой.
Socket
  
Считывает из сокета 32-разрядное целое число со знаком.
Socket
  
readMultiByte(length:uint, charSet:String):String
Считывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Socket
  
Считывает объект из сокета, зашифрованного в сериализованный формат AMF.
Socket
  
Считывает из сокета 16-разрядное целое число со знаком.
Socket
  
Считывает из сокета байт без знака.
Socket
  
Считывает из сокета 32-разрядное целое число без знака.
Socket
  
Считывает из сокета 16-разрядное целое число без знака.
Socket
  
Считывает из сокета строку UTF-8.
Socket
  
Считывает из сокета число байт данных UTF-8, заданное параметром length, и возвращает строку.
Socket
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
  
Записывает логическое значение в сокет.
Socket
  
Записывает байт в сокет.
Socket
  
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Записывает последовательность байт из заданного массива байт.
Socket
  
Записывает в сокет число IEEE 754 с двойной точностью и плавающей запятой.
Socket
  
Записывает в сокет число IEEE 754 с одинарной точностью и плавающей запятой.
Socket
  
Записывает в сокет 32-разрядное целое число со знаком.
Socket
  
Записывает многобайтовую строку из потока байт с использованием заданного набора знаков.
Socket
  
Записывает объект в сокет в сериализованном формате AMF.
Socket
  
Записывает в сокет 16-разрядное целое число.
Socket
  
Записывает в сокет 32-разрядное целое число без знака.
Socket
  
Записывает следующие данные в сокет: 16-разрядное целое число без знака, указывающее на длину заданной строки UTF-8 в байтах, а затем саму строку.
Socket
  
Записывает строку UTF-8 в сокет.
Socket
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда сервер закрывает подключение к сокету.Socket
  Отправляется после установления сетевого подключения.Socket
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
  Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или загрузки.Socket
  Отправляется, если путем вызова метода Socket.connect() предпринимается попытка подключения к серверу, лежащему за пределами изолированной среды вызывающего объекта, или к порту с номером, меньшим 1024.Socket
  Отправляется, когда сокет получает данные.Socket
Сведения о свойстве
bytesAvailableсвойство
bytesAvailable:uint  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Число байт данных, доступных для чтения во входном буфере.

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


Реализация
    public function get bytesAvailable():uint
connectedсвойство 
connected:Boolean  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Определяет, подключен ли в настоящий момент этот объект Socket. Вызов этого свойства возвращает значение true, если сокет в настоящий момент подключен, или значение false, если не подключен.


Реализация
    public function get connected():Boolean
endianсвойство 
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свойство 
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свойство 
timeout:uint  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Указывает время ожидания подключения в миллисекундах.

Если подключение не будет установлено в течение заданного срока, попытка завершается ошибкой. Значение по умолчанию 10,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

Создает объект 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.
Сведения о методе
close()метод
public function close():void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Закрывает сокет. После вызова метода close() вы не сможете считать или записать какие-либо данные.

Событие close отправляется только в том момент, когда сервер закрывает соединение. Оно не отправляется при вызове метода close().

Для повторного использования объекта Socket снова вызовите для него метод connect().


Выдает
IOError — Не удалось закрыть сокет или сокет не был открыт.
connect()метод 
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.
flush()метод 
public function flush():void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Очищает любые накопленные данные в выходном буфере сокета. Данные, записанные методом write, передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readBoolean()метод 
public function readBoolean():Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета логическое значение. После считывания одного байта метод возвращает true, если этот байт ненулевой, в противном случае, возвращается значение false.

Возвращает
Boolean — Значение равно true, если считывается ненулевой байт, в противном случае используется значение false.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readByte()метод 
public function readByte():int

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета байт со знаком.

Возвращает
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

Считывает из сокета число байт данных, заданное параметром 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

Считывает из сокета число IEEE 754 с двойной точностью и плавающей запятой.

Возвращает
Number — Число IEEE 754 с двойной точностью и плавающей запятой.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readFloat()метод 
public function readFloat():Number

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета число IEEE 754 с одинарной точностью и плавающей запятой.

Возвращает
Number — Число IEEE 754 с одинарной точностью и плавающей запятой.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readInt()метод 
public function readInt():int

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета 32-разрядное целое число со знаком.

Возвращает
int — Значение в диапазоне от -2147483648 до 2147483647.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readMultiByte()метод 
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 — Недостаточно данных, доступных для чтения.
readObject()метод 
public function readObject():*

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает объект из сокета, зашифрованного в сериализованный формат AMF.

Возвращает
* — Десериализованный объект

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

readShort()метод 
public function readShort():int

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета 16-разрядное целое число со знаком.

Возвращает
int — Значение в диапазоне от -32768 до 32767.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readUnsignedByte()метод 
public function readUnsignedByte():uint

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета байт без знака.

Возвращает
uint — Значение в диапазоне от 0 до 255.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readUnsignedInt()метод 
public function readUnsignedInt():uint

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета 32-разрядное целое число без знака.

Возвращает
uint — Значение в диапазоне от 0 до 4294967295.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readUnsignedShort()метод 
public function readUnsignedShort():uint

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета 16-разрядное целое число без знака.

Возвращает
uint — Значение в диапазоне от 0 до 65535.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readUTF()метод 
public function readUTF():String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным коротким целым числом, указывающим длину в байтах.

Возвращает
String — Строка UTF-8.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.
readUTFBytes()метод 
public function readUTFBytes(length:uint):String

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Считывает из сокета число байт данных 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

Записывает логическое значение в сокет. Данный метод записывает один байт со значением 1 (true) или 0 (false).

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:Boolean — Значение, записываемое в сокете: 1 (true) или 0 (false).


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeByte()метод 
public function writeByte(value:int):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает байт в сокет.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:int — Значение, записываемое в сокет. Используются 8 младших битов значения, а 24 старших бита игнорируются.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeBytes()метод 
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 — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeDouble()метод 
public function writeDouble(value:Number):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает в сокет число IEEE 754 с двойной точностью и плавающей запятой.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:Number — Значение, записываемое в сокет.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeFloat()метод 
public function writeFloat(value:Number):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает в сокет число IEEE 754 с одинарной точностью и плавающей запятой.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:Number — Значение, записываемое в сокет.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeInt()метод 
public function writeInt(value:int):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает в сокет 32-разрядное целое число со знаком.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:int — Значение, записываемое в сокет.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeMultiByte()метод 
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". Полный список см. в разделе Поддерживаемые наборы символов.

См. также

writeObject()метод 
public function writeObject(object:*):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает объект в сокет в сериализованном формате AMF.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

object:* — объект для сериализации


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeShort()метод 
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 — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeUnsignedInt()метод 
public function writeUnsignedInt(value:uint):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает в сокет 32-разрядное целое число без знака.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:uint — Значение, записываемое в сокет.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeUTF()метод 
public function writeUTF(value:String):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает следующие данные в сокет: 16-разрядное целое число без знака, указывающее на длину заданной строки UTF-8 в байтах, а затем саму строку.

Перед тем как записать строку, метод рассчитывает количество битов, необходимое для представления всех символов строки.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:String — Строка, записываемая в сокет.


Выдает
RangeError — Длина превышает 65535.
 
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

writeUTFBytes()метод 
public function writeUTFBytes(value:String):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Записывает строку UTF-8 в сокет.

Примечание. Записанные таким методом данные передаются не сразу — они находятся в очереди до того, как будет вызван метод flush().

Параметры

value:String — Строка, записываемая в сокет.


Выдает
IOError — В сокете возникла ошибка ввода-вывода или сокет не был открыт.

См. также

Сведения о событии
close Событие
Тип объекта события: 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.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, для которого разорвано подключение.
connect Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.CONNECT

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется после установления сетевого подключения.

Константа Event.CONNECT определяет значение свойства type объекта события connect.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
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

Отправляется, когда происходит ошибка ввода-вывода, приводящая к сбою операции отправки или загрузки.

Задает значение свойства type для объекта события ioError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, с которым произошла ошибка ввода/вывода.
textТекст, отображаемый в качестве сообщения об ошибке.
securityError Событие  
Тип объекта события: 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.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, сообщающий об ошибке безопасности.
textТекст, отображаемый в качестве сообщения об ошибке.

См. также

socketData Событие  
Тип объекта события: flash.events.ProgressEvent
свойство ProgressEvent.type = flash.events.ProgressEvent.SOCKET_DATA

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется, когда сокет получает данные. В событиях типа socketData не используется свойство ProgressEvent.bytesTotal.

Задает значение свойства type для объекта события socketData.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий событие.
bytesLoadedЧисло элементов или байт, загруженных на момент обработки события прослушивателем.
bytesTotal0; это свойство не используется объектами события socketData.
targetОбъект Socket, сообщающий сведения о прогрессе.
Примеры Как пользоваться примерами
SocketExample.as

В следующем примере рассматриваются операции записи и чтения на сокете, а также вывод информации, переданной во время событий сокета. Основные моменты данного примера представлены ниже:
  1. Конструктор создает экземпляр CustomSocket с именем socket и передает в качестве аргументов имя узла localhost и порт 80. Так как CustomSocket расширяет Socket, вызов метода super() расширяет конструктор Socket.
  2. Затем в примере вызывается метод configureListeners(), добавляющий прослушивателей для событий Socket.
  3. В завершение, вызывается метод 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();
    }
}