'flush()'에 해당되는 글 1건

  1. 2008.09.21 Socket/XMLSocket 연동

소켓서버를 구현하여 테스트 해보진 못했지만....레퍼런스만 정리해 보면 다음과 같다.

소켓에 연결하고 데이터를 전송하거나 받을때 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) 스마트 폭스 서버
Posted by 버터백통