Esempio n. 1
0
    private void Dowrk()
    {
        SeverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        ipep        = new IPEndPoint(IPAddress.Any, 8080);
        SeverSocket.Bind(ipep);
        SeverSocket.Listen(10);

        Debug.Log("소켓 대기중....");
        client = SeverSocket.Accept();//client에서 수신을 요청하면 접속합니다.
        Debug.Log("소켓 연결되었습니다.");

        clientep = (IPEndPoint)client.RemoteEndPoint;
        recvStm  = new NetworkStream(client);
        sendStm  = new NetworkStream(client);

        while (Socket_Thread_Flag)
        {
            byte[] receiveBuffer = new byte[256];
            try
            {
                recvStm.Read(receiveBuffer, 0, receiveBuffer.Length);
                recvData = ByteToStruct <RecvPacket>(receiveBuffer);
                isRecved = true;
            }
            catch (Exception e)
            {
                Debug.Log(e.Message);
                Socket_Thread_Flag = false;
                client.Close();
                SeverSocket.Close();
                continue;
            }
        }
    }
Esempio n. 2
0
 public GameReceiver()
 {
     mRoles         = new Dictionary <int, RoleData>();
     mPropertyTable = new Dictionary <int, PropData>();
     mRecordTable   = new Dictionary <int, RecData>();
     mMenus         = new Dictionary <int, MenuData>();
     RecvPacket.SetGameReceiver(this);
 }
Esempio n. 3
0
    void AddPacketToRecvQueue(byte[] bytes, int length)
    {
        RecvPacket pkt = new RecvPacket();

        pkt.buffer = new byte[length];

        Buffer.BlockCopy(bytes, 0, pkt.buffer, 0, length);
        pkt.length = length;

        RecvPacketQueue.Add(pkt);

        Buffer.BlockCopy(bytes, length, bytes, 0, MAX_BYTE_SIZE - length);
    }
Esempio n. 4
0
        public bool HasHeader(int header)
        {
            if (Enum.IsDefined(typeof(ClientPacket), header))
            {
                var _header = (ClientPacket)header;

                if (RecvPacket.ContainsKey(_header))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
        public Type GetRecvPacket(int header)
        {
            if (Enum.IsDefined(typeof(ClientPacket), header))
            {
                var _header = (ClientPacket)header;

                if (RecvPacket.ContainsKey(_header))
                {
                    return(RecvPacket[_header]);
                }
            }

            return(null);
        }
Esempio n. 6
0
 IEnumerator ProcessCoroutine()
 {
     while (true)
     {
         if (RecvPacketQueue.Count <= 0)
         {
         }
         else
         {
             RecvPacket rPkt = RecvPacketQueue[0];
             PacketProcess(rPkt);
             RecvPacketQueue.RemoveAt(0);
         }
         yield return(null);
     }
 }
Esempio n. 7
0
    void Awake()
    {
        instance           = this;
        Socket_Thread      = new Thread(Dowrk);
        Socket_Thread_Flag = true;
        Socket_Thread.Start();

        isRecved = false;
        recvData = new RecvPacket();
        sendData = new SendPacket();


        sendData.data1 = 0;
        sendData.data2 = 0;
        sendData.data3 = 0;
        sendData.data4 = 0;
        sendData.data5 = 0;
    }
Esempio n. 8
0
    void Awake()
    {
        instance           = this;
        Socket_Thread      = new Thread(Dowrk);
        Socket_Thread_Flag = true;
        Socket_Thread.Start();

        isRecved = false;
        recvData = new RecvPacket();
        sendData = new SendPacket();

        /// ed: input으로 사용할 data, isDone 변수값을 초기화합니다
        sendData.data = new float[181];
        for (int i = 0; i < sendData.data.Length; i++)
        {
            sendData.data[i] = 0;
        }

        sendData.isDone = 0;
        sendData.reward = 1;
    }
Esempio n. 9
0
        public void addBuff(byte[] buff)
        {
            if (buff == null || buff.Length == 0)
            {
                return;
            }
            RecvBuffer.AddRange(buff);
            if (RecvBuffer.Count <= 2)
            {
                return;
            }
            UInt16 len   = (UInt16)System.Net.IPAddress.HostToNetworkOrder((short)BitConverter.ToUInt16(RecvBuffer.ToArray(), 0));
            int    total = len + 2;

            if (RecvBuffer.Count < total)
            {
                return;
            }
            byte[] tbuff = new byte[len];
            RecvBuffer.CopyTo(2, tbuff, 0, len);
            RecvPacket.BeginRead(tbuff);
            RecvBuffer.RemoveRange(0, total);
        }
Esempio n. 10
0
 public void SetGameClient(GameClient client)
 {
     m_client = client;
     RecvPacket.SetGameClient(client);
 }
Esempio n. 11
0
 public ICustomHandler GetCustomHandler()
 {
     return(RecvPacket.GetCustomHandle());
 }
Esempio n. 12
0
 // 自定义消息处理器对象
 public void SetCustomHandler(ICustomHandler msgHandle)
 {
     RecvPacket.SetCustomHandle(msgHandle);
 }
Esempio n. 13
0
 public IGameMsgHander GetGameMsgHandler()
 {
     return(RecvPacket.GetMsgHandle());
 }
Esempio n. 14
0
 public void SetGameMsgHander(IGameMsgHander msgHandle)
 {
     RecvPacket.SetMsgHandle(msgHandle);
 }
Esempio n. 15
0
    void PacketProcess(RecvPacket rPkt)
    {
        PacketHeader pHeader = new PacketHeader();

        Buffer.BlockCopy(rPkt.buffer, 0, pHeader.pID, 0, 2);
        Buffer.BlockCopy(rPkt.buffer, 2, pHeader.bodySize, 0, 2);

        PACKETID pID = (PACKETID)BitConverter.ToInt16(pHeader.pID, 0);

        Debug.LogWarning("header ID : " + BitConverter.ToInt16(pHeader.pID, 0) + " | pID : " + pID);
        Debug.Log(rPkt.buffer[0]);
        Debug.Log(rPkt.buffer[1]);
        switch (pID)
        {
        case PACKETID.RES_LOGIN: {
            Debug.Log("RES_LOGIN");
            bool isExist = BitConverter.ToBoolean(rPkt.buffer, 4);
            Debug.Log(isExist);

            if (isExist == false)
            {
                pDataManager.SetPlayerState(SCENE_STATE.LOGIN_SCENE_FAILED);
                break;
            }

            string key = Encoding.Default.GetString(rPkt.buffer, 5, 10);
            pDataManager.SavePlayerKey(key);
            pDataManager.SetPlayerState(SCENE_STATE.MY_SCENE);
        }
        break;

        case PACKETID.RES_REGISTER_USER: {
            Debug.Log("RES_REGISTER");
            bool isExist = BitConverter.ToBoolean(rPkt.buffer, 4);
            Debug.Log(isExist);

            if (isExist == false)
            {
                pDataManager.SetPlayerState(SCENE_STATE.CREATE_USER_FAILED);
                break;
            }

            string key = Encoding.Default.GetString(rPkt.buffer, 5, 10);
            pDataManager.SavePlayerKey(key);
            Debug.Log("uID : " + key);
            pDataManager.SetPlayerState(SCENE_STATE.CREATE_USER_SUCCESS);
        }
        break;

        case PACKETID.RES_GET_DUNGEON_LIST: {
            byte[] dataNum = new byte[2];
            Buffer.BlockCopy(rPkt.buffer, 4, dataNum, 0, 2);
            short num = BitConverter.ToInt16(dataNum, 0);

            Debug.LogWarning("recved Tile Num : " + num);
            Debug.LogWarning("bytes : " + dataNum[0] + dataNum[1]);
            pDataManager.SaveTotalDTileNum(num);

            byte[] uID     = new byte[10];
            byte[] dID     = new byte[10];
            byte[] dName   = new byte[10];
            byte[] dInfo   = new byte[30];
            byte[] roomNum = new byte[2];

            for (int i = 0; i < num; ++i)
            {
                Buffer.BlockCopy(rPkt.buffer, 6 + 62 * i, uID, 0, 10);
                Buffer.BlockCopy(rPkt.buffer, 16 + 62 * i, dID, 0, 10);
                Buffer.BlockCopy(rPkt.buffer, 26 + 62 * i, dName, 0, 10);
                Buffer.BlockCopy(rPkt.buffer, 36 + 62 * i, dInfo, 0, 30);
                Buffer.BlockCopy(rPkt.buffer, 66 + 62 * i, roomNum, 0, 2);

                pDataManager.SaveSearchSceneMapData(
                    i,
                    Encoding.Default.GetString(uID),
                    Encoding.Default.GetString(dID),
                    Encoding.Default.GetString(dName),
                    Encoding.Default.GetString(dInfo),
                    BitConverter.ToInt16(roomNum, 0)
                    );
            }

            pDataManager.SetPlayerState(SCENE_STATE.SEARCH_SCENE_LOADED);
        }
        break;

        default:
            break;
        }
    }
Esempio n. 16
0
        public SocketRevMsgHandle()
        {
            mRecvPacket = new RecvPacket();

            //add event

            //SERVER_SET_VERIFY (1)
            AddEvent(GlobalServerMsg.SERVER_SET_VERIFY, mRecvPacket.recvSetVerify);
            //SERVER_SET_ENCODE (2)
            AddEvent(GlobalServerMsg.SERVER_SET_ENCODE, mRecvPacket.recvSetEncode);
            //SERVER_ERROR_CODE (3)
            AddEvent(GlobalServerMsg.SERVER_ERROR_CODE, mRecvPacket.recvErrorCode);
            //AddEvent(GlobalServerMsg.SERVER_IDLE, mRecvPacket.recvIdle);
            //SERVER_LOGIN_SUCCEED(4)
            AddEvent(GlobalServerMsg.SERVER_LOGIN_SUCCEED, mRecvPacket.recvLoginSuccess);
            //SERVER_WORLD_INFO (5)
            AddEvent(GlobalServerMsg.SERVER_WORLD_INFO, mRecvPacket.recvWorldInfo);
            //SERVER_IDLE (6)
            AddEvent(GlobalServerMsg.SERVER_IDLE, mRecvPacket.recvIdle);
            //SERVER_QUEUE (7)
            AddEvent(GlobalServerMsg.SERVER_QUEUE, mRecvPacket.recvQueue);
            //SERVER_TERMINATE (8)
            AddEvent(GlobalServerMsg.SERVER_TERMINATE, mRecvPacket.recvTerminate);
            //SERVER_PROPERTY_TABLE(9)
            AddEvent(GlobalServerMsg.SERVER_PROPERTY_TABLE, mRecvPacket.recvPropertyTable);
            //SERVER_RECORD_TABLE (10)
            AddEvent(GlobalServerMsg.SERVER_RECORD_TABLE, mRecvPacket.recvRecordTable);
            //SERVER_ENTRY_SCENE (11)
            AddEvent(GlobalServerMsg.SERVER_ENTRY_SCENE, mRecvPacket.recvEntryScene);
            //SERVER_EXIT_SCENE (12)
            AddEvent(GlobalServerMsg.SERVER_EXIT_SCENE, mRecvPacket.recvExitScene);
            //SERVER_ADD_OBJECT (13)
            AddEvent(GlobalServerMsg.SERVER_ADD_OBJECT, mRecvPacket.recvAddObj);
            //SERVER_REMOVE_OBJECT (14)
            AddEvent(GlobalServerMsg.SERVER_REMOVE_OBJECT, mRecvPacket.recvRemoveObj);
            //SERVER_SCENE_PROPERTY (15)
            AddEvent(GlobalServerMsg.SERVER_SCENE_PROPERTY, mRecvPacket.recvSceneProperty);
            //SERVER_OBJECT_PROPERTY (16)
            AddEvent(GlobalServerMsg.SERVER_OBJECT_PROPERTY, mRecvPacket.recvObjectProperty);
            //SERVER_RECORD_ADDROW (17)
            AddEvent(GlobalServerMsg.SERVER_RECORD_ADDROW, mRecvPacket.recvRecordAddRow);
            //SERVER_RECORD_DELROW (18)
            AddEvent(GlobalServerMsg.SERVER_RECORD_DELROW, mRecvPacket.recvRecordDelRow);
            //SERVER_RECORD_GRID(19)
            AddEvent(GlobalServerMsg.SERVER_RECORD_GRID, mRecvPacket.recvRecordGrid);
            //SERVER_RECORD_CLEAR (20)
            AddEvent(GlobalServerMsg.SERVER_RECORD_CLEAR, mRecvPacket.recvRecordClear);
            //SERVER_CREATE_VIEW (21)
            AddEvent(GlobalServerMsg.SERVER_CREATE_VIEW, mRecvPacket.recvCreateView);
            //SERVER_DELETE_VIEW (22)
            AddEvent(GlobalServerMsg.SERVER_DELETE_VIEW, mRecvPacket.recvDeleteView);
            //SERVER_VIEW_PROPERTY (23)
            AddEvent(GlobalServerMsg.SERVER_VIEW_PROPERTY, mRecvPacket.recvViewProperty);
            //SERVER_VIEW_ADD (24)
            AddEvent(GlobalServerMsg.SERVER_VIEW_ADD, mRecvPacket.recvViewAdd);
            //SERVER_VIEW_REMOVE (25)
            AddEvent(GlobalServerMsg.SERVER_VIEW_REMOVE, mRecvPacket.recvViewRemove);
            //SERVER_SPEECH (26)
            AddEvent(GlobalServerMsg.SERVER_SPEECH, mRecvPacket.recvSpeech);
            //SERVER_SYSTEM_INFO (27)
            AddEvent(GlobalServerMsg.SERVER_SYSTEM_INFO, mRecvPacket.recvSystemInfo);
            //SERVER_MENU (28)
            AddEvent(GlobalServerMsg.SERVER_MENU, mRecvPacket.recvMenu);
            //SERVER_CLEAR_MENU (29)
            AddEvent(GlobalServerMsg.SERVER_CLEAR_MENU, mRecvPacket.recvClearMenu);
            //SERVER_CUSTOM (30) (OK)
            AddEvent(GlobalServerMsg.SERVER_CUSTOM, mRecvPacket.recvCustom);
            //SERVER_LOCATION (31) (OK)
            AddEvent(GlobalServerMsg.SERVER_LOCATION, mRecvPacket.recvOnLocation);
            //SERVER_MOVING (32)
            AddEvent(GlobalServerMsg.SERVER_MOVING, mRecvPacket.recvOnMoving);
            //SERVER_ALL_DEST (33) (OK)
            AddEvent(GlobalServerMsg.SERVER_ALL_DEST, mRecvPacket.recvAllDest);
            //SERVER_WARNING (34)
            AddEvent(GlobalServerMsg.SERVER_WARNING, mRecvPacket.recvWarning);
            //SERVER_FROM_GMCC (35)
            AddEvent(GlobalServerMsg.SERVER_FROM_GMCC, mRecvPacket.recvFromGmcc);
            //SERVER_LINK_TO (36)
            AddEvent(GlobalServerMsg.SERVER_LINK_TO, mRecvPacket.recvLinkTo);
            //SERVER_UNLINK(37)
            AddEvent(GlobalServerMsg.SERVER_UNLINK, mRecvPacket.recvUnLink);
            //SERVER_LINK_MOVE (38)
            AddEvent(GlobalServerMsg.SERVER_LINK_MOVE, mRecvPacket.recvLinkMove);
            //SERVER_CP_CUSTOM (39)
            AddEvent(GlobalServerMsg.SERVER_CP_CUSTOM, mRecvPacket.recvCpCustom);
            //SERVER_CP_ADD_OBJECT (40)
            AddEvent(GlobalServerMsg.SERVER_CP_ADD_OBJECT, mRecvPacket.recvCpAddObject);
            //SERVER_CP_RECORD_ADDROW (41)
            AddEvent(GlobalServerMsg.SERVER_CP_RECORD_ADDROW, mRecvPacket.recvCpRecordAddRow);
            //SERVER_CP_VIEW_ADD (42)
            AddEvent(GlobalServerMsg.SERVER_CP_VIEW_ADD, mRecvPacket.recvCpViewAdd);
            //SERVER_VIEW_CHANGE (43)
            AddEvent(GlobalServerMsg.SERVER_VIEW_CHANGE, mRecvPacket.recvViewChange);
            //SERVER_CP_ALL_DEST (44)
            AddEvent(GlobalServerMsg.SERVER_CP_ALL_DEST, mRecvPacket.recvCpAllDest);
            //SERVER_ALL_PROP (45)
            AddEvent(GlobalServerMsg.SERVER_ALL_PROP, mRecvPacket.recvAllProp);
            //SERVER_CP_ALL_PROP (46)
            AddEvent(GlobalServerMsg.SERVER_CP_ALL_PROP, mRecvPacket.recvCpAllProp);
            //SERVER_ADD_MORE_OBJECT (47)
            AddEvent(GlobalServerMsg.SERVER_ADD_MORE_OBJECT, mRecvPacket.recvAddMoreObject);
            //SERVER_CP_ADD_MORE_OBJECT (48)
            AddEvent(GlobalServerMsg.SERVER_CP_ADD_MORE_OBJECT, mRecvPacket.recvCpAddMoreObject);
            //SERVER_REMOVE_MORE_OBJECT (49)
            AddEvent(GlobalServerMsg.SERVER_REMOVE_MORE_OBJECT, mRecvPacket.recvRemoveMoreObject);
            //SERVER_CHARGE_VALIDSTRING (50)
            //AddEvent(GlobalServerMsg.SERVER_CHARGE_VALIDSTRING, mRecvPacket.recvChargeValidString);
            //SERVER_VERSION(50)
            AddEvent(GlobalServerMsg.SERVER_VERSION, mRecvPacket.recvVersion);

            AddEvent(GlobalServerMsg.SERVER_PLATFROM_LOGIN, mRecvPacket.recvPlatformLogin);
        }