패키지flash.net
클래스public class Socket
상속Socket Inheritance EventDispatcher Inheritance Object
구현 IDataInput, IDataOutput

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

Socket 클래스는 코드를 활성화하여 소켓 연결을 만들고 원시 이진 데이터를 읽고 쓸 수 있도록 합니다. XMLSocket과 유사하지만, 수신된 또는 전송된 데이터의 형식을 지정하지는 않습니다.

소켓 클래스는 이진 프로토콜을 사용하는 서버와의 작업에서 유용합니다.

Socket 클래스의 메서드를 사용하려면 우선 생성자인 new Socket을 사용하여 Socket 객체를 만들어야 합니다.

local-with-filesystem 샌드박스의 SWF 파일은 소켓을 사용할 수 없습니다.

대상 호스트의 소켓 정책 파일은 SWF 파일에서 소켓 연결을 만들 수 있는 호스트 및 가능한 대상 포트를 지정합니다. Flash Player의 버전이 올라가면서 소켓 정책 파일에 대한 보안 요구 사항이 보다 엄격해졌습니다. 모든 버전의 Flash Player에서 소켓 정책 파일을 사용하는 것이 좋습니다. 소켓 정책 파일이 필수적인 경우도 있습니다. 따라서 XMLSocket 객체를 사용할 때는 필요한 경우 대상 호스트가 소켓 정책 파일을 제공하는지 확인해야 합니다.

다음 목록에서는 여러 버전의 Flash Player에서 소켓 정책 파일에 대한 요구 사항을 보여 줍니다.

하지만 Adobe AIR에서 application 보안 샌드박스의 내용 즉 AIR 응용 프로그램과 함께 설치되는 내용은 이러한 보안 제한에 의해 제한되지 않습니다.

보안과 관련된 자세한 내용은 다음을 참조하십시오.

예제 보기

참고 사항

Socket connections
Connecting to sockets


Public 속성
 속성다음에 의해 정의됨
  bytesAvailable : uint
[읽기 전용] 입력 버퍼에서 읽을 수 있는 데이터 바이트 수입니다.
Socket
  connected : Boolean
[읽기 전용] 이 소켓 객체가 현재 연결되어 있는지 여부를 나타냅니다.
Socket
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  endian : String
데이터의 바이트 순서를 나타냅니다. flash.utils.Endian 클래스에서 Endian.BIG_ENDIAN 또는 Endian.LITTLE_ENDIAN 상수 값을 가질 수 있습니다.
Socket
  objectEncoding : uint
객체를 쓰거나 읽을 때 사용되는 AMF 버전을 제어합니다.
Socket
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  timeout : uint
연결을 기다릴 시간(밀리초)를 나타냅니다.
Socket
Public 메서드
 메서드다음에 의해 정의됨
  
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
소켓에서 length 매개 변수로 지정된 만큼의 데이터 바이트를 읽습니다.
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
  
소켓에서 length 매개 변수로 지정된 만큼의 UTF-8 데이터 바이트를 읽고 문자열을 반환합니다.
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 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
  서버가 소켓 연결을 종료할 때 전달됩니다.Socket
  네트워크 연결이 설정되면 전달됩니다.Socket
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
  전송 또는 로드 작업의 실패를 유발하는 입력/출력 오류가 발생할 때 전달됩니다.Socket
  Socket.connect() 호출로 호출자의 보안 샌드박스 외부에 있는 서버 또는 1024 미만인 포트에 대한 연결을 시도하면 전달됩니다.Socket
  소켓이 데이터를 수신하면 전달됩니다.Socket
속성 정보
bytesAvailable속성
bytesAvailable:uint  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

입력 버퍼에서 읽을 수 있는 데이터 바이트 수입니다.

read 메서드 중 하나를 사용하여 읽기를 시도하기 전에 충분한 데이터가 있는지 확인하기 위해 코드에서 bytesAvailable에 액세스해야 합니다.



구현
    public function get bytesAvailable():uint
connected속성 
connected:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

이 소켓 객체가 현재 연결되어 있는지 여부를 나타냅니다. 현재 소켓이 연결된 경우, 이 속성을 호출하면 true 값이 반환됩니다. 그렇지 않으면 false가 반환됩니다.



구현
    public function get connected():Boolean
endian속성 
endian:String  [읽기/쓰기]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0 Flash Player 9

데이터의 바이트 순서를 나타냅니다. flash.utils.Endian 클래스에서 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, AIR 1.5

연결을 기다릴 시간(밀리초)를 나타냅니다.

지정된 시간 내에 연결되지 않으면 연결에 실패합니다. 기본값은 20,000(20초)입니다.



구현
    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 메서드(hostport 매개 변수 사용)를 호출하는 것이 좋습니다. 이 순서대로 하면 모든 이벤트 리스너가 정상적으로 작동합니다.

매개 변수
host:String (default = null) — 정규화된 DNS 도메인 이름 또는 111.222.333.444 형식의 IP 주소입니다. Flash Player 9.0.115.0 이상 및 AIR 1.0 이상에서는 IPv6 주소(예: rtmp://[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:Event — 네트워크 연결이 설정되면 전달됩니다.
 
ioError:IOErrorEvent — 연결 실패를 유발하는 입출력 오류가 발생하면 전달됩니다.
 
securityError:SecurityErrorEvent이 오류는 SWF 내용에서 발생합니다. Socket.connect() 호출로 소켓 정책 파일을 제공하지 않는 서버나 해당 정책 파일에서 호출하는 호스트에 지정된 포트에 대한 액세스를 허용하지 않는 서버에 연결을 시도하면 전달됩니다. 소켓 정책 파일에 대한 자세한 내용은 ActionScript 3.0 프로그래밍의 "Flash Player 보안" 장을 참조하십시오.

오류
SecurityError — 이 오류는 다음과 같은 이유로 SWF 내용에서 발생합니다.
  • Local-with-filesystem 파일은 인터넷 통신이 불가능합니다. 이 SWF 파일을 네트워킹 가능한 로컬 파일(local-with-networking) 또는 신뢰할 수 있는 파일로 다시 규정하면 이 오류를 해결할 수 있습니다. 이 제한은 응용 프로그램 보안 샌드박스의 AIR 응용 프로그램 내용에 대해서는 설정되지 않습니다.
  • 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 주소입니다. 호스트가 지정되지 않은 경우, 호출하는 파일이 있는 호스트가 연결되는 호스트입니다. 호스트를 지정하지 않을 경우, 이벤트 리스너를 사용하여 연결 성공 여부를 확인합니다.
 
port:int — 연결할 포트 번호입니다.


이벤트
connect:Event — 네트워크 연결이 설정되면 전달됩니다.
 
ioError:IOErrorEvent — 호스트가 지정되고 연결 실패를 유발하는 입출력 오류가 발생하면 전달됩니다.
 
securityError:SecurityErrorEventSocket.connect() 호출로 소켓 정책 파일을 제공하지 않는 서버나 해당 정책 파일에서 호출하는 호스트에 지정된 포트에 대한 액세스를 허용하지 않는 서버에 연결을 시도하면 전달됩니다. 자세한 내용은 ActionScript 3.0 프로그래밍의 "Flash Player 보안" 장을 참조하십시오.

오류
IOError — 지정된 호스트가 없으며 연결에 실패했습니다.
 
SecurityError — 이 오류는 다음과 같은 이유로 SWF 내용에서 발생합니다.
  • 신뢰할 수 없는 로컬 SWF 파일은 인터넷 통신이 불가능합니다. 이 파일을 네트워킹 가능한 로컬 파일(local-with-networking) 또는 신뢰할 수 있는 파일로 다시 규정하면 이 오류를 해결할 수 있습니다.
  • 65535보다 큰 소켓 포트는 지정할 수 없습니다.
  • SWF 내용을 포함하는 HTML 페이지에서 objectembed 태그의 allowNetworking 매개 변수가 "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

소켓에서 부울 값을 읽습니다. 메서드는 단일 바이트를 읽은 후 바이트가 0이 아니면 true를 반환하고 그렇지 않으면 false를 반환합니다.

반환값
Boolean — 바이트 읽기가 0이 아니면 값은 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 매개 변수의 값을 인식하지 못하면 응용 프로그램은 시스템의 기본 코드 페이지를 문자 세트로 사용합니다. 예를 들어 1이 아니라 01을 사용하는 myTest.readMultiByte(22, "iso-8859-01")의 경우처럼 charSet 매개 변수의 값이 사용자의 개발 컴퓨터에서는 작동하지만 다른 컴퓨터에서는 작동하지 않을 수 있습니다. 다른 컴퓨터의 경우 응용 프로그램은 시스템의 기본 코드 페이지를 사용합니다.

반환값
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

소켓에서 length 매개 변수로 지정된 만큼의 UTF-8 데이터 바이트를 읽고 문자열을 반환합니다.

매개 변수

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)bytes ByteArray 객체에 대한 0부터 시작하는 오프셋으로, 여기서부터 데이터 쓰기가 시작되어야 합니다.
 
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 상수는 close 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
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

네트워크 연결이 설정되면 전달됩니다.

Event.CONNECT 상수는 connect 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
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

전송 또는 로드 작업의 실패를 유발하는 입력/출력 오류가 발생할 때 전달됩니다.

ioError 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubbles false
cancelable false; 취소할 기본 비헤이비어가 없습니다.
currentTarget 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
errorID 특정 오류와 연결된 참조 번호입니다(AIR만 해당).
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 상수는 securityError 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubbles false
cancelable false; 취소할 기본 비헤이비어가 없습니다.
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 속성을 사용하지 않습니다.

socketData 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubbles false
cancelable false; 취소할 기본 비헤이비어가 없습니다.
currentTarget 현재 이벤트를 처리하고 있는 객체입니다.
bytesLoaded 리스너가 이벤트를 처리할 때 로드된 항목 수 또는 바이트 수입니다.
bytesTotal 0: 이 속성은 socketData 이벤트 객체에서 사용되지 않습니다.
target 진행률을 보고하는 Socket 객체입니다.
예제 예제 사용 방법
SocketExample.as

다음 예제에서는 소켓에서 읽고 쓰며, 소켓 이벤트 중에 전송된 정보를 출력합니다. 이 예제에서 중요한 부분은 다음과 같습니다.
  1. 생성자는 socket이라는 CustomSocket 인스턴스를 만들고 호스트 이름 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();
    }
}