/// <summary>
        /// 네트워크로부터 받는 메시지 처리
        /// 프로토콜을 분석한 후 IClientEventListener 로 전달한다.
        /// 처리흐름 : [ClientIoHandler] -> IClientEventListener -> ClientEventAbstract
        /// </summary>
        /// <param name="buffer"></param>
        public void MessageReceived(IoBuffer buffer) {
            Protocol protocol = Protocol.GetCode(buffer.getShort());

            Log.game.Debug("handler.MessageReceived.protocol : " + protocol.Value);

            //EvnetListener로 넘긴다
            listener.EventReceive(protocol, buffer);
        }
        /// <summary>
        /// IClieventListener.EventReceive
        /// 처리흐름 : ClientIoHandler -> [IClientEventListener] -> ClientEventAbstract -> IUIEventListener
        /// </summary>
        /// <param name="protocol"></param>
        /// <param name="buffer"></param>
        public void EventReceive(Protocol protocol, IoBuffer buffer) {
            Log.game.Debug("controller.EventReceived : " + protocol.Desc);

            //프로토콜에 해당하는 ClientEvent 반환
            ClientEventAbstract clientEvent = ClientEventFactory.getEvent(protocol);
            if( clientEvent == null ) return;
            
            try{
                //이벤트 처리
                clientEvent.Set(buffer);
            }catch{
            }finally{
                //UIEventListener에 전달하기 위해 등록
                AddClientEvent(clientEvent);
            }
        }
        /// <summary>
        /// IClieventListener.EventReceive
        /// 처리흐름 : ClientIoHandler -> [IClientEventListener] -> ClientEventAbstract -> IUIEventListener
        /// </summary>
        /// <param name="protocol"></param>
        /// <param name="buffer"></param>
        public void EventReceive(Protocol protocol, IoBuffer buffer)
        {
            Log.game.Debug("controller.EventReceived : " + protocol.Desc);

            //프로토콜에 해당하는 ClientEvent 반환
            ClientEventAbstract clientEvent = ClientEventFactory.getEvent(protocol);

            if (clientEvent == null)
            {
                return;
            }

            try{
                //이벤트 처리
                clientEvent.Set(buffer);
            }catch {
            }finally{
                //UIEventListener에 전달하기 위해 등록
                AddClientEvent(clientEvent);
            }
        }
Example #4
0
 /// <summary>
 /// 수신된 패킷 처리
 /// </summary>
 /// <param name="buffer"></param>
 protected override void ReceivePacket(IoBuffer buffer) {
     hResult = RCode.GetCode(buffer);
 }
 //수신된 packet 처리
 protected abstract void ReceivePacket(IoBuffer buffer);
        /// <summary>
        /// 메시지 수신
        /// </summary>
        /// <param name="ar"></param>
        public void MessageReceived(IAsyncResult ar) {
            int bytesRead;
            try {
                bytesRead = client.GetStream().EndRead(ar);

                if(Log.game.IsDebugEnabled)
                    Log.game.Debug("receive bytes: " + bytesRead);

                //Server disconnected
                if( bytesRead < 1 ) {
                    Disconnect();
                    return;
                }

                IoBuffer buffer = new IoBuffer(readBuffer);

                handler.MessageReceived(buffer);

                buffer.dispose();

                // start a new asynchronous read
                client.GetStream().BeginRead(readBuffer, 0, RECEIVE_BUFFER_SIZE, new AsyncCallback(MessageReceived), null);
            }
            catch {
                Disconnect();
            }
        }
 /// <summary>
 /// ClientEvent를 처리하는곳
 /// 처리흐름 : ClientIoHandler -> IClientEventListener -> [ClientEventAbstract] -> ClientEvent
 /// </summary>
 /// <param name="buffer"></param>
 public void Set(IoBuffer buffer) {
     ReceivePacket(buffer);
     EventProcess();
 }
Example #8
0
 /// <summary>
 /// ClientEvent를 처리하는곳
 /// 처리흐름 : ClientIoHandler -> IClientEventListener -> [ClientEventAbstract] -> ClientEvent
 /// </summary>
 /// <param name="buffer"></param>
 public void Set(IoBuffer buffer)
 {
     ReceivePacket(buffer);
     EventProcess();
 }
Example #9
0
 //수신된 packet 처리
 protected abstract void ReceivePacket(IoBuffer buffer);
Example #10
0
 public static String getString(IoBuffer buffer) {
     int len = buffer.getInt();
     if( len == 0 ) {
         return "";
     }else {
         return encoding.GetString(buffer.get(len));
     }
 }
Example #11
0
 public static bool getBoolean(IoBuffer buffer) {
     byte b = buffer.get();
     return b == 0 ? false : true;
 }
 protected override void ReceivePacket(IoBuffer buffer) {
 }
Example #13
0
        public static bool getBoolean(IoBuffer buffer)
        {
            byte b = buffer.get();

            return(b == 0 ? false : true);
        }
Example #14
0
 public static RCode GetCode(IoBuffer buffer) {
     return GetCode(buffer.getShort());
 }