| 패키지 | flash.net |
| 클래스 | public class XMLSocket |
| 상속 | XMLSocket EventDispatcher Object |
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
XMLSocket.connect() 메서드는 1024 이상의 TCP 포트 번호에만 연결할 수 있습니다. 이 제한 사항 때문에 XMLSocket 객체와 통신하는 서버 데몬 역시 1024 이상의 포트 번호에 할당되어야 합니다. 1024보다 작은 포트 번호는 주로 FTP, Telnet, HTTP 등과 같은 시스템 서비스에 사용되므로, 보안 문제 때문에 XMLSocket 객체가 이러한 포트를 사용하지 못하도록 차단한 것입니다. 이렇게 포트 번호를 제한함으로써 포트 번호가 잘못 사용될 가능성을 줄일 수 있습니다.
XMLSocket 객체와 통신할 서버를 설정하는 작업은 그리 간단하지 않습니다. 응용 프로그램에서 실시간 상호 작용이 필요하지 않다면 XMLSocket 클래스 대신 URLLoader 클래스를 사용합니다. XMLSocket 클래스의 메서드를 사용하려면 먼저 생성자 new XMLSocket을 사용하여 XMLSocket 객체를 만들어야 합니다.
이 클래스를 사용할 경우 다음과 같은 Flash Player 보안 모델을 생각해 볼 수 있습니다.
자세한 내용은 다음을 참조하십시오.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
| connected : Boolean
[read-only]
이 XMLSocket 객체가 현재 연결되어 있는지 여부를 나타냅니다.
| XMLSocket | ||
![]() | constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
| Object | |
![]() | prototype : Object
[static]
클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
| Object | |
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
|
새 XMLSocket 객체를 만듭니다.
| XMLSocket | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
| EventDispatcher | |
|
XMLSocket 객체에 의해 지정된 연결을 종료합니다.
| XMLSocket | ||
|
지정된 TCP 포트를 사용하여 지정된 인터넷 호스트에 연결합니다.
| XMLSocket | ||
![]() |
이벤트를 이벤트 흐름으로 전달합니다.
| EventDispatcher | |
![]() |
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
| EventDispatcher | |
![]() |
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
| Object | |
![]() |
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
| Object | |
![]() |
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
| Object | |
![]() |
EventDispatcher 객체에서 리스너를 제거합니다.
| EventDispatcher | |
|
객체 매개 변수에 지정된 XML 객체 또는 데이터를 문자열로 변환하여 서버로 전송하고, 끝에 0바이트를 붙입니다.
| XMLSocket | ||
![]() |
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
| Object | |
![]() |
지정된 객체의 문자열 표현을 반환합니다.
| Object | |
![]() |
지정된 객체의 프리미티브 값을 반환합니다.
| Object | |
![]() |
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
| EventDispatcher | |
| 이벤트 | 요약 | 다음에 의해 정의됨 | ||
|---|---|---|---|---|
![]() | Flash Player가 운영 체제에서 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | ||
| 서버가 소켓 연결을 종료할 때 전달됩니다. | XMLSocket | |||
| XMLSocket.connect() 메서드에 대한 호출이 성공한 경우에 전달됩니다. | XMLSocket | |||
| 원시 데이터를 전송하거나 수신한 후에 전달됩니다. | XMLSocket | |||
![]() | Flash Player가 운영 체제에서 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | ||
| 전송 또는 수신 작업의 실패를 유발하는 입력/출력 오류가 발생할 때 전달됩니다. | XMLSocket | |||
| XMLSocket.connect() 메서드 호출로 호출자의 보안 샌드박스 외부에 있는 서버 또는 1024 미만의 포트에 대한 연결을 시도할 때 전달됩니다. | XMLSocket | |||
| connected | 속성 |
connected:Boolean [read-only]
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
이 XMLSocket 객체가 현재 연결되어 있는지 여부를 나타냅니다. 또한 connect 이벤트 및 ioError 이벤트에 등록하여 연결 성공 여부를 확인할 수 있습니다.
public function get connected():Boolean
참고 사항
| XMLSocket | () | 생성자 |
public function XMLSocket(host:String = null, port:int = 0)
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
새 XMLSocket 객체를 만듭니다. XMLSocket 객체는 처음에 어떠한 서버에도 연결되어 있지 않습니다. 객체를 서버에 연결하려면 XMLSocket.connect() 메서드를 호출해야 합니다.
host:String (default = null) — 정규화된 DNS 도메인 이름 또는 aaa.bbb.ccc.ddd 형식의 IP 주소입니다. null을 지정하여 SWF 파일이 있는 호스트 서버에 연결할 수도 있습니다. 이 호출을 수행하는 SWF 파일이 웹 브라우저에서 실행 중인 경우, host는 해당 SWF 파일과 같은 도메인에 속해야 합니다.
|
|
port:int (default = 0) — 연결 설정에 사용되는 호스트의 TCP 포트 번호입니다. 정책 파일을 사용하지 않는 한 포트 번호는 1024 이상이어야 합니다.
|
참고 사항
| close | () | 메서드 |
public function close():void
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
XMLSocket 객체에 의해 지정된 연결을 종료합니다. close 이벤트는 서버가 연결을 종료할 때만 전달됩니다. close() 메서드를 호출할 때는 전달되지 않습니다.
참고 사항
| connect | () | 메서드 |
public function connect(host:String, port:int):void
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
지정된 TCP 포트를 사용하여 지정된 인터넷 호스트에 연결합니다. 정책 파일을 사용 중이 아니라면, 기본적으로 포트 1024 이상에만 연결할 수 있습니다.
host 매개 변수에 대해 null을 지정하면 연결된 호스트는 XMLSocket.connect()를 호출하는 SWF 파일이 있는 호스트입니다. 예를 들어, SWF 파일이 www.adobe.com에서 다운로드된 경우 호스트 매개 변수로 null을 지정하면 www.adobe.com의 IP 주소를 입력하는 것과 같습니다.
SWF 파일이 실행되고 있는 Flash Player의 버전이 7보다 낮은 경우, host는 이 호출을 수행한 SWF 파일과 동일한 수퍼 도메인에 있어야 합니다. 예를 들어, www.adobe.com의 SWF 파일은 store.adobe.com의 SWF 파일로부터 변수를 받거나 보낼 수 있습니다. 두 파일 모두 adobe.com이라는 동일한 수퍼 도메인에 위치하기 때문입니다.
SWF 파일이 실행되고 있는 Flash Player의 버전이 7 이상인 경우, host는 정확하게 동일한 도메인에 있어야 합니다. 예를 들어, www.adobe.com에 있는 어떤 SWF 파일이 Flash Player 5용으로 제작되었지만 Flash Player 7 이상에서 실행 중인 경우, 이 SWF 파일은 www.adobe.com에 있는 SWF 파일에서만 변수를 받거나 보낼 수 있습니다. 다른 도메인에서 변수를 받거나 보내려면 액세스하려는 SWF 파일을 호스팅하는 서버에 크로스 도메인 정책 파일이 존재해야 합니다.
SWF 내용을 포함하는 HTML 페이지에서 object 및 embed 태그의 allowNetworking 매개 변수를 설정하여 SWF 파일에서 이 메서드를 사용하지 못하도록 할 수 있습니다.
자세한 내용은 다음을 참조하십시오.
매개 변수
host:String — 정규화된 DNS 도메인 이름 또는 aaa.bbb.ccc.ddd 형식의 IP 주소입니다. null을 지정하여 SWF 파일이 있는 호스트 서버에 연결할 수도 있습니다. 이 호출을 수행하는 SWF 파일이 웹 브라우저에서 실행 중인 경우, host는 해당 SWF 파일과 같은 도메인에 속해야 합니다.
|
|
port:int — 연결 설정에 사용되는 호스트의 TCP 포트 번호입니다. 정책 파일을 사용하지 않는 한 포트 번호는 1024 이상이어야 합니다.
|
securityError: — 호출자의 보안 샌드박스 외부의 서버 및/또는 1024보다 작은 포트와 연결하려는 작업이 시도되었습니다. 서버에서 XMLSocket 정책 파일을 사용하면 두 문제 모두 해결할 수 있습니다. |
|
data: — 원시 데이터를 수신하면 전달됩니다. |
|
connect: — 네트워크 연결이 설정되면 전달됩니다. |
SecurityError — 신뢰할 수 없는 로컬 SWF 파일은 인터넷 통신이 불가능합니다. 이 SWF 파일을 네트워킹 가능한 로컬 파일(local-with-networking) 또는 신뢰할 수 있는 파일로 다시 규정하면 이 오류를 해결할 수 있습니다.
|
|
SecurityError — 65535보다 큰 소켓 포트는 지정할 수 없습니다.
|
참고 사항
| send | () | 메서드 |
public function send(object:*):void
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
object 매개 변수에 지정된 XML 객체 또는 데이터를 문자열로 변환하여 서버로 전송하고, 끝에 0바이트를 붙입니다. object가 XML 객체인 경우 문자열은 XML 객체의 XML 텍스트 표현입니다. 보내기 작업은 비동기적입니다. 따라서 즉시 반환하지만 데이터는 나중에 전송될 수 있습니다. XMLSocket.send() 메서드는 데이터가 성공적으로 전송되었는지 여부를 나타내는 값을 반환하지 않습니다.
XMLSocket.connect()를 사용하여 XMLSocket 객체를 서버에 연결하지 않는 경우, XMLSocket.send() 작업에 실패합니다.
매개 변수
object:* — 서버로 전송할 XML 객체 또는 다른 데이터입니다.
|
IOError — XMLSocket 객체가 서버와 연결되지 않았습니다.
|
참고 사항
| close | 이벤트 |
flash.events.Event
flash.events.Event.CLOSE
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
서버가 소켓 연결을 종료할 때 전달됩니다. close 이벤트는 서버가 연결을 종료할 때만 전달됩니다. XMLSocket.close() 메서드를 호출할 때는 전달되지 않습니다.
close 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 연결이 종료된 객체입니다. |
| connect | 이벤트 |
flash.events.Event
flash.events.Event.CONNECT
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
XMLSocket.connect() 메서드에 대한 호출이 성공하면 전달됩니다.
connect 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 네트워크 연결을 설정한 Socket 또는 XMLSocket 객체입니다. |
| data | 이벤트 |
flash.events.DataEvent
flash.events.DataEvent.DATA
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
원시 데이터를 전송하거나 수신한 후에 전달됩니다.
data 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
data | Flash Player에 로드된 원시 데이터입니다. |
target | 데이터를 수신하는 XMLSocket 객체입니다. |
| ioError | 이벤트 |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
전송 또는 수신 작업의 실패를 유발하는 입력/출력 오류가 발생할 때 전달됩니다.
ioError 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 입력/출력 오류가 발생한 네트워크 객체입니다. |
text | 오류 메시지로 표시될 텍스트입니다. |
| securityError | 이벤트 |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
XMLSocket.connect() 메서드 호출로 호출자의 보안 샌드박스 외부에 있는 서버 또는 1024 미만의 포트에 대한 연결을 시도하면 전달됩니다.
SecurityErrorEvent.SECURITY_ERROR 상수는 securityError 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 보안 오류를 보고하는 네트워크 객체입니다. |
text | 오류 메시지로 표시될 텍스트입니다. |
참고 사항
socket이라는 이름의 XMLSocket 인스턴스를 만들고 socket을 ConfigureListeners()에 전달한 다음(아래 참조) 호스트 이름 "localhost"와 포트 번호 8080을 사용하여 XMLSocket의 connect() 메서드를 호출합니다.configureListeners() 메서드가 호출되어 지원되는 각 XMLSocket 이벤트에 대해 리스너를 추가합니다.
closeHandler(): close 이벤트를 수신합니다. 이 이벤트는 네트워크 연결이 종료된 후 전달됩니다.connectHandler(): connect 이벤트를 수신합니다. 이 이벤트는 네트워크 연결이 설정되면 전달됩니다.dataHandler(): data 이벤트를 수신합니다. 이 이벤트는 XMLSocket이 새 데이터를 받을 때마다 전달됩니다.progressHandler(): progress 이벤트를 수신합니다. 이 이벤트는 send()를 호출하여 전송이 진행되는 동안에 전달됩니다.securityErrorHandler(): securityError 이벤트를 수신합니다. 이 이벤트는 잘못된 로컬 재생 보안 설정으로 또는 1024 미만의 포트 번호를 사용하여 XMLSocket에 액세스하려고 할 때 전달됩니다.ioErrorHandler(): ioError 이벤트를 수신합니다. 이 이벤트는 데이터 전송 또는 수신 작업에 실패했을 때만 전달됩니다.참고:
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.XMLSocket;
public class XMLSocketExample extends Sprite {
private var hostName:String = "localhost";
private var port:uint = 8080;
private var socket:XMLSocket;
public function XMLSocketExample() {
socket = new XMLSocket();
configureListeners(socket);
socket.connect(hostName, port);
}
public function send(data:Object):void {
socket.send(data);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CLOSE, closeHandler);
dispatcher.addEventListener(Event.CONNECT, connectHandler);
dispatcher.addEventListener(DataEvent.DATA, dataHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
}
private function closeHandler(event:Event):void {
trace("closeHandler: " + event);
}
private function connectHandler(event:Event):void {
trace("connectHandler: " + event);
}
private function dataHandler(event:DataEvent):void {
trace("dataHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
}
}
이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서
현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/net/XMLSocket.html