패키지 | 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 클래스의 메서드를 사용하려면 우선 생성자인 new Socket
을 사용하여 Socket 객체를 만들어야 합니다.
소켓은 데이터를 비동기적으로 전송하고 수신합니다.
실행 프레임 사이에 flush()가 자동으로 호출되는 운영 체제도 있고, 명시적으로 flush()
를 호출해야만 데이터를 전송하는 운영 체제(예: Windows)도 있습니다. 응용 프로그램이 운영 체제에 상관없이 안정적으로 동작하려면 소켓에 각 메시지(또는 관련 데이터 그룹)를 작성한 후 flush()
메서드를 호출하는 것이 좋습니다.
Adobe AIR에서 Socket 객체는 수신 ServerSocket이 외부 프로세스로부터 연결을 수신할 때도 만들어집니다. 연결을 나타내는 Socket은 ServerSocketConnectEvent에 전달됩니다. 응용 프로그램은 Socket 객체에 대한 참조를 유지 관리하는 역할을 담당합니다. 응용 프로그램이 없으면 Socket 객체는 가비지 수집 대상이 되어 런타임에 경고 없이 삭제될 수 있습니다.
local-with-filesystem 보안 샌드박스에서 실행 중인 SWF 내용은 소켓을 사용할 수 없습니다.
대상 호스트의 소켓 정책 파일은 SWF 파일에서 소켓 연결을 만들 수 있는 호스트 및 가능한 대상 포트를 지정합니다. Flash Player의 버전이 올라가면서 소켓 정책 파일에 대한 보안 요구 사항이 보다 엄격해졌습니다. 모든 버전의 Flash Player에서 소켓 정책 파일을 사용하는 것이 좋습니다. 소켓 정책 파일이 필수적인 경우도 있습니다. 따라서 Socket 객체를 사용할 때는 필요한 경우 대상 호스트가 소켓 정책 파일을 제공하는지 확인해야 합니다.
다음 목록에서는 여러 버전의 Flash Player에서 소켓 정책 파일에 대한 요구 사항을 보여 줍니다.
- Flash Player 9.0.124.0 이상에서는 모든 소켓 연결에 소켓 정책 파일이 필요합니다. 즉, 연결하는 포트에 관계없이 대상 호스트에 소켓 정책 파일이 있어야 하며, SWF 파일을 제공하는 해당 호스트의 포트에 연결하는 경우에도 마찬가지입니다.
- Flash Player 9.0.115.0 이전 버전에서는 1024보다 낮은 포트 번호에 연결하거나 SWF 파일을 제공하는 호스트와 다른 호스트에 연결하려는 경우 대상 호스트에 소켓 정책 파일이 있어야 합니다.
- Flash Player 9.0.115.0에서는 소켓 정책 파일이 필수적이지 않지만 대상 호스트에서 소켓 정책 파일을 제공하지 않으면 Flash Debug Player를 사용할 때 경고가 표시됩니다.
- AIR에서는 응용 프로그램 보안 샌드박스에서 실행 중인 내용에 대해 소켓 정책 파일이 필요하지 않습니다. 소켓 정책 파일은 AIR 응용 프로그램 보안 샌드박스 외부에서 실행 중인 내용에서 설정된 소켓 연결에 필요합니다.
보안에 대한 자세한 내용은 Flash Player 개발자 센터 항목 보안을 참조하십시오.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
bytesAvailable : uint [읽기 전용]
입력 버퍼에서 읽을 수 있는 데이터 바이트 수입니다. | Socket | ||
bytesPending : uint [읽기 전용]
쓰기 버퍼에 남아 있는 바이트 수를 나타냅니다. | Socket | ||
connected : Boolean [읽기 전용]
이 소켓 객체가 현재 연결되어 있는지 여부를 나타냅니다. | 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 | ||
소켓에서 length 매개 변수로 지정된 만큼의 UTF-8 데이터 바이트를 읽고 문자열을 반환합니다. | 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 | 속성 |
bytesPending | 속성 |
bytesPending:uint
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 11, AIR 3.0 |
쓰기 버퍼에 남아 있는 바이트 수를 나타냅니다.
이 속성은 OutputProgressEvent와 결합하여 사용합니다. OutputProgressEvent는 쓰기 버퍼에서 네트워크로 데이터가 씌어질 때마다 발생합니다. 이벤트 처리기에서 bytesPending
을 선택하면 버퍼에서 쓰기 작업을 대기하느라 남아 있는 데이터 양을 확인할 수 있습니다. bytesPending
에서 0을 반환하면 모든 데이터가 쓰기 버퍼에서 네트워크에 전송된 것이며, 이 경우 이벤트 핸들러 제거, 소켓 참조 null 설정, 대기열 내 다음 업로드 시작 등의 작업을 안전하게 실행할 수 있습니다.
구현
public function get bytesPending():uint
관련 API 요소
connected | 속성 |
endian | 속성 |
localAddress | 속성 |
localPort | 속성 |
objectEncoding | 속성 |
remoteAddress | 속성 |
remotePort | 속성 |
timeout | 속성 |
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과 같이 도트-10진수 표기법으로 지정됩니다. Flash Player 9.0.115.0 이상 및 AIR 1.0 이상에서는 2001:db8:ccc3:ffff:0:444d:555e:666f와 같은 16진수-콜론 표기법을 사용하여 IPv6 주소를 지정할 수 있습니다. 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 개발자 센터 항목: 보안을 참조하십시오.
|
오류
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 개발자 센터 항목: 보안을 참조하십시오.
|
오류
IOError — 지정된 호스트가 없으며 연결에 실패했습니다.
| |
SecurityError — 이 오류는 다음과 같은 이유로 SWF 내용에서 발생합니다.
|
flush | () | 메서드 |
public function flush():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
소켓의 출력 버퍼에 축적된 데이터를 모두 플러시합니다.
실행 프레임 사이에 flush()가 자동으로 호출되는 운영 체제도 있고, 명시적으로 flush()
를 호출해야만 데이터를 전송하는 운영 체제(예: Windows)도 있습니다. 응용 프로그램이 운영 체제에 상관없이 안정적으로 동작하려면 소켓에 각 메시지(또는 관련 데이터 그룹)를 작성한 후 flush()
메서드를 호출하는 것이 좋습니다.
오류
IOError — 소켓에서 입출력 오류가 발생했거나 소켓이 열려 있지 않습니다.
|
readBoolean | () | 메서드 |
public function readBoolean():Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
소켓에서 부울 값을 읽습니다. 메서드는 단일 바이트를 읽은 후 바이트가 0이 아니면 true
를 반환하고 그렇지 않으면 false
를 반환합니다.
Boolean — 바이트 읽기가 0이 아니면 값은 true 이고, 그렇지 않으면 false 입니다.
|
오류
EOFError — 읽을 수 있는 데이터가 부족합니다.
| |
IOError — 소켓에서 입출력 오류가 발생했거나 소켓이 열려 있지 않습니다.
|
readByte | () | 메서드 |
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 | () | 메서드 |
readFloat | () | 메서드 |
readInt | () | 메서드 |
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 | () | 메서드 |
readShort | () | 메서드 |
readUnsignedByte | () | 메서드 |
readUnsignedInt | () | 메서드 |
readUnsignedShort | () | 메서드 |
readUTF | () | 메서드 |
readUTFBytes | () | 메서드 |
public function readUTFBytes(length:uint):String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
소켓에서 length
매개 변수로 지정된 만큼의 UTF-8 데이터 바이트를 읽고 문자열을 반환합니다.
매개 변수
length:uint — 읽을 바이트 수입니다.
|
String — UTF-8 문자열입니다.
|
오류
EOFError — 읽을 수 있는 데이터가 부족합니다.
| |
IOError — 소켓에서 입출력 오류가 발생했거나 소켓이 열려 있지 않습니다.
|
writeBoolean | () | 메서드 |
writeByte | () | 메서드 |
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 ) — bytes ByteArray 객체에 대한 0부터 시작하는 오프셋으로, 여기서부터 데이터 쓰기가 시작되어야 합니다.
| |
length:uint (default = 0 ) — 쓸 바이트 수입니다. 기본값 0으로 설정되면 offset 매개 변수가 지정하는 값을 시작으로 전체 버퍼를 씁니다.
|
오류
IOError — 소켓에서 입출력 오류가 발생했거나 소켓이 열려 있지 않습니다.
| |
RangeError — offset 이 bytes 에 지정된 ByteArray 길이보다 크거나 offset 과 length 를 합하여 쓰도록 지정된 데이터 크기가 사용 가능한 데이터를 초과하는 경우입니다.
|
관련 API 요소
writeDouble | () | 메서드 |
writeFloat | () | 메서드 |
writeInt | () | 메서드 |
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 | () | 메서드 |
writeShort | () | 메서드 |
writeUnsignedInt | () | 메서드 |
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 | () | 메서드 |
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
상수는 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, Flash Lite 4 |
네트워크 연결이 설정되면 전달됩니다.
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, Flash Lite 4 |
전송 또는 로드 작업의 실패를 유발하는 입력/출력 오류가 발생할 때 전달됩니다.
ioError
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
errorID | 특정 오류와 연결된 참조 번호입니다(AIR만 해당). |
target | 입력/출력 오류가 발생한 네트워크 객체입니다. |
text | 오류 메시지로 표시될 텍스트입니다. |
outputProgress | 이벤트 |
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
상수는 securityError
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
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
속성을 사용하지 않습니다.
socketData
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트를 처리하고 있는 객체입니다. |
bytesLoaded | 리스너가 이벤트를 처리할 때 로드된 항목 수 또는 바이트 수입니다. |
bytesTotal | 0: 이 속성은 socketData 이벤트 객체에서 사용되지 않습니다. |
target | 진행률을 보고하는 소켓입니다. |
- 생성자는
socket
이라는CustomSocket
인스턴스를 만들고 호스트 이름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, 03:17 PM Z