public void ReciveData_Delegate(byte[] packet_Data)
    {
        RecieveBuffer    = new ByteData(packet_Data);
        Recieved_NetKind = (NETKIND)RecieveBuffer.Getbyte();

        if (IsOwnRecieveNetKind(Recieved_NetKind))
        {
            lock (Lockobject)
            {
                RecieveBuffer.DataIndex--;
                Que_Bytedata.Enqueue(RecieveBuffer);
            }
        }
        else if (Recieved_NetKind == NETKIND.STC_CONNECTION_RETENTION)
        {
            lock (Lockobject)
            {
                RecieveBuffer.DataIndex--;
                Que_Bytedata.Enqueue(RecieveBuffer);
            }

            Link_Script.i.GamePlay_Receive_Data(packet_Data);
        }
        else
        {
            //나머지는 배틀 쪽 KIND다 그쪽으로 보내서 처리토록하자
            Link_Script.i.GamePlay_Receive_Data(packet_Data);
        }
    }
    void Chk_RecieveProcess()
    {
        while (Chk_readBuffer() == true)
        {
            RecieveBuffer    = Read_ByteBuffer();
            Recieved_NetKind = (NETKIND)RecieveBuffer.Getbyte();

            switch (Recieved_NetKind)
            {
            case NETKIND.NONE:
                break;

            case NETKIND.STC_LOGIN:
                Recieve_STC_Login();
                break;

            case NETKIND.STC_CONNECTION_RETENTION:
                Recieve_STC_Retention();
                break;

            case NETKIND.STC_ROOM_MAKE:
                Recieve_STC_RoomMake();
                break;

            case NETKIND.STC_OPEN_ROOM:
                Recieve_STC_OpenRoom(RecieveBuffer);
                break;

            case NETKIND.STC_INVITE_ROOM:
                Recieve_STC_InviteRoom(RecieveBuffer);
                break;

            case NETKIND.STC_READYROOM_INFO:
                Recieve_STC_RoomInfo(RecieveBuffer);
                break;

            case NETKIND.STC_FRIEND_ROOM_JOIN:
                Recieve_STC_FriendRoomjoin(RecieveBuffer);
                break;

            case NETKIND.STC_CHAT_MESSAGE:
                Recieve_STC_ChatMessage(RecieveBuffer);
                break;

            case NETKIND.STC_TOAST_MSG:
                Recieve_STC_ToastMsg(RecieveBuffer);
                break;

            case NETKIND.STC_POPUP_MSG:
                Recieve_STC_PopupMsg(RecieveBuffer);
                break;

            case NETKIND.STC_ERROR_CODE:
                Recieve_STC_ERROR(RecieveBuffer);
                break;
            }
        }
    }
Ejemplo n.º 3
0
    //프로토콜 맞춰서 보내기
    public void Send_Data(NETKIND _Protocol, byte[] _Data, bool _Sum_Check = false)
    {
        if (Socket_Client == null || IsConnected == false)
        {
            return;
        }

        if (_Data == null)
        {
            _Data = new byte[0];
        }

        try
        {
            Send_Data_Buffer = new ByteData(HeaderData.Length + Buffer_Length + _Data.Length, 0);

            for (int i = 0; i < HeaderData.Length; i++)
            {
                Send_Data_Buffer.InPutByte(HeaderData[i]);
            }

            Send_Data_Buffer.InPutByte((short)(Buffer_Length + _Data.Length - sizeof(short)));//길이 ("길이" 데이터 제외한 크기)
            Send_Data_Buffer.InPutByte((byte)_Protocol);

            Array.Copy(_Data, 0, Send_Data_Buffer.data, HeaderData.Length + Buffer_Length, _Data.Length);

            Send_Data_Buffer.DataIndex += _Data.Length;


            if (_Sum_Check == false)//바로 패킷 보내기
            {
                Send_Packet(Send_Data_Buffer.GetTrimByteData());
            }
            else//패킷 모아서 보내기
            {
                lock (Total_Send_Lock)
                {
                    Array.Copy(Send_Data_Buffer.data, 0, Total_Send_Packet, Total_Send_Index, Send_Data_Buffer.DataIndex);

                    Total_Send_Index += Send_Data_Buffer.DataIndex;
                }

                //일정양 이상 쌓였으면 꽉차기전에 미리 보내버린다.
                if (Total_Send_Index + 128 >= Total_Send_Packet_Length)
                {
                    Now_Send_Packet();
                }
            }
        }
        catch (Exception ex)
        {
            Error_DisConnect(ex);
        }
    }
    bool IsOwnRecieveNetKind(NETKIND kind)
    {
        bool isUse = false;

        switch (kind)
        {
        case NETKIND.STC_LOGIN:
        case NETKIND.STC_ROOM_MAKE:
        case NETKIND.STC_OPEN_ROOM:
        case NETKIND.STC_INVITE_ROOM:
        case NETKIND.STC_READYROOM_INFO:
        case NETKIND.STC_CHAT_MESSAGE:
        case NETKIND.STC_FRIEND_ROOM_JOIN:
        case NETKIND.STC_ERROR_CODE:
        case NETKIND.STC_POPUP_MSG:
        case NETKIND.STC_TOAST_MSG:


            isUse = true;
            break;
        }
        return(isUse);
    }
    ///////////////////////===============================================================================================//////////////////////////////////
    ///////////////////////===========================			Related Sending             ================================//////////////////////////////////
    ///////////////////////===============================================================================================//////////////////////////////////

    public void NetSendData(NETKIND _Protocol, byte[] _Data)
    {
        Net_Script.Send_Data(_Protocol, _Data);
    }
Ejemplo n.º 6
0
    public void Receive_Delegate(byte[] Packet_Data)
    {
        try
        {
            Receive_Buffer   = new ByteData(Packet_Data);
            Receive_Protocol = (NETKIND)Receive_Buffer.Getbyte();

            switch (Receive_Protocol)
            {
            case NETKIND.STC_BATTLEROOM_INFO:

                Recv_Quick_Join(Receive_Buffer);

                break;

            case NETKIND.STC_BATTLEROOM_START_INFO:

                Recv_TeamPlay_Join(Receive_Buffer);

                break;

            case NETKIND.STC_KILL_WORDS:

                Recv_Killing_Message(Receive_Buffer);

                break;

            case NETKIND.STC_CONNECTION_RETENTION:

                Recv_HeartBeat();

                break;

            case NETKIND.STC_CONNECT_TIMEOVER:

                Recv_Connect_TimeOver();

                break;

            case NETKIND.STC_GAME_START:

                Recv_GamePlay_Start();

                break;

            case NETKIND.STC_GAMEDATA_RELAY:

                Recv_PTP_Data(Receive_Buffer);

                break;

            case NETKIND.STC_SET_HP:

                Recv_Set_HP(Receive_Buffer);

                break;

            case NETKIND.STC_GAME_ROOM_TIME:

                Recv_GetServerTime(Receive_Buffer);

                break;

            case NETKIND.STC_REVIVAL:

                Recv_Respawn_Data(Receive_Buffer);

                break;

            case NETKIND.STC_INSTANT_REVIVAL:

                Recv_Now_Respawn_Data(Receive_Buffer);

                break;

            case NETKIND.STC_SET_USERKILL:

                Recv_UserKill(Receive_Buffer);

                break;

            case NETKIND.STC_ROOM_JOIN_NOTICE:

                Recv_RoomIn_User(Receive_Buffer);

                break;

            case NETKIND.STC_ROOM_OUT_USER:    //플레이중에 나간 유저 체크

                Recv_RoomOut_User(Receive_Buffer);

                break;

            case NETKIND.STC_GAME_SCORE:

                Recv_Now_Total_Score(Receive_Buffer);

                break;

            case NETKIND.STC_MAINBASE_HP:

                Recv_Base_HP(Receive_Buffer);

                break;

            case NETKIND.STC_GAME_TIMEOVER:

                Recv_TimerOver(Receive_Buffer);

                break;

            case NETKIND.STC_GAME_REWRDEND:

                Recv_RewardEnd();

                break;
            //case NETKIND.STC_CHAT_MESSAGE:

            //    //인게임중 채팅 메세지를 받습니다 (서버에서 받은 byteData )
            //    SendManager.Instance.RecieveChatMessage_BattleGame(Receive_Buffer);

            //    break;
            //case NETKIND.STC_ERROR_CODE:

            //    byte Error_Code = 0;

            //    Receive_Buffer.OutPutVariable(ref Error_Code);

            //    Debug.LogError("서버에서 정의한 에러값 넘어왔다 : " + (ErrorCode)Error_Code);

            //    break;
            default:

                Disconnect("선언 되지 않은 프로토콜 : " + Receive_Protocol);

                break;
            }
        }
        catch (Exception ex)
        {
            Disconnect(ex.ToString());
        }
    }
Ejemplo n.º 7
0
    //================================================================================================================================================================================

    //데이터 보내기
    void Data_Send(NETKIND _Protocol, byte[] Send_Data)
    {
        SendManager.Instance.Send_NetData(_Protocol, Send_Data);
    }
Ejemplo n.º 8
0
    //////================================================= 네트워크 부분 ================================================

    // 소켓서버 데이터보내기
    public void Send_NetData(NETKIND _Protocol, byte[] _Data)
    {
        Network_MainMenuSoketManager.Getsingleton.NetSendData(_Protocol, _Data);
    }