소켓서버를 구현하여 테스트 해보진 못했지만....레퍼런스만 정리해 보면 다음과 같다.
소켓에 연결하고 데이터를 전송하거나 받을때 XMLSocket과 Socket은 약간의 차이점을 갖는다.
[ Socket 연동 ]
Socket에 데이터를 보낼 때 Socket은 flush()를 사용하여 데이터를 최종적으로 보낸다.
Socket()은 데이터를 받을때 ProgressEvent.SOCKET_DATA 을 통해 받는다.
[ XMLSocket연동 ]
XMLSocket에 데이터를 보낼 때 Socket은 send( xml delegator )를 사용하여 데이터를 최종적으로 보낸다.
XMLSocket()은 데이터를 받을 때 DataEvent.DATA이벤트를 통해 데이터를 받는다.
[ Socket에 기록하기 위한 메서드들 ]
writeBoolean(value:Boolean):void
소켓에 부울 값을 씁니다
writeByte(value:int):void
소켓에 바이트를 씁니다.
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
지정된 바이트 배열로부터 바이트 시퀀스를 씁니다.
writeDouble(value:Number):void
소켓에 IEEE 754 배정밀도 부동 소수점 숫자를 씁니다.
writeFloat(value:Number):void
소켓에 IEEE 754 단정밀도 부동 소수점 숫자를 씁니다.
writeInt(value:int):void
소켓에 부호 있는 32비트 정수를 씁니다.
writeMultiByte(value:String, charSet:String):void (ex: writeMultiByte('내용' , 'UTF-8') )
지정된 문자 세트를 사용하여 바이트 스트림에서 멀티바이트 문자열을 씁니다.
writeObject(object:*):void
소켓에 AMF 직렬 형식으로 객체를 씁니다.
writeShort(value:int):void
소켓에 16비트 정수를 씁니다.
writeUnsignedInt(value:uint):void
소켓에 부호 없는 32비트 정수를 씁니다.
writeUTF(value:String):void
소켓에 부호 없는 16비트 정수를 기록합니다.
이것은 지정된 UTF-8 문자열의 바이트 수와 문자열 자체의 길이를 의미합니다.
writeUTFBytes(value:String):void
소켓에 UTF-8 문자열을 씁니다.
[ Socket에 읽기 위한 메서드들 ]
readBoolean():Boolean
소켓에서 부울 값을 읽습니다.
readByte():int
소켓에서 부호 있는 바이트를 읽습니다.
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
소켓에서 length 매개 변수로 지정된 만큼의 데이터 바이트를 읽습니다.
readDouble():Number
소켓에서 IEEE 754 배정밀도 부동 소수점 숫자를 읽습니다.
readFloat():Number
소켓에서 IEEE 754 단정밀도 부동 소수점 숫자를 읽습니다.
readInt():int
소켓에서 부호 있는 32비트 정수를 읽습니다.
readMultiByte(length:uint, charSet:String):String
지정된 문자 세트를 사용하여 바이트 스트림에서 멀티바이트 문자열을 읽습니다.
readObject():*
소켓에서 AMF 직렬 형식으로 인코딩된 객체를 읽습니다.
readShort():int
소켓에서 부호 있는 16비트 정수를 읽습니다.
readUnsignedByte():uint
소켓에서 부호 없는 바이트를 읽습니다.
readUnsignedInt():uint
소켓에서 부호 없는 32비트 정수를 읽습니다.
readUnsignedShort():uint
소켓에서 부호 없는 16비트 정수를 읽습니다.
readUTF():String
소켓에서 UTF-8 문자열을 읽습니다.
readUTFBytes(length:uint):String
소켓에서 length 매개 변수로 지정된 만큼의 UTF-8 데이터 바이트를 읽고 문자열을 반환합니다.
이처럼 다양한 속성과 메서드를 제공하지만 실제로 스마트폭스 소켓을 사용하면 위의 메서드는 사용할 일 이 거의 없다. 스마트폭스 소켓서버는 세계적으로 인정받는 소켓이기도 하지만 거의 모든 기능이 구현되어있어 로그인이나 채팅시 메세지 전송 등 대부분의 소켓통신을 이용한 메서드가 구현되어있으므로 별도의 학습이 필요하지만 학습을 한 후에는 강력한 기능의 소켓통신 어플리케이션을 만들 수 있을 것이다.
ps) 스마트 폭스 서버