public IEnumerator LocalUDP_Test()
        {
            pPacketCheckRecieve = SPacketTest_Struct.Dummy();
            Assert.AreEqual(pPacketCheckRecieve, SPacketTest_Struct.Dummy());

            Network_UDP_Test.EventMakeSingleton();
            Network_UDP_Test.instance.DoStartListen_UDP(iTestPort);

            bIsRecievePacket_OnFail = false;
            SPacketTest_Struct pSendPacket = new SPacketTest_Struct(1, "보냈다");

            // 보내기 전에는 체크용 패킷과 보낼 패킷과 일치하지 않는다.
            Assert.AreNotEqual(pPacketCheckRecieve.iValue, pSendPacket.iValue);
            Assert.AreNotEqual(pPacketCheckRecieve.strValue, pSendPacket.strValue);

            Network_UDP_Test.instance.DoSendPacket(strTestTargetIP, iTestPort, pSendPacket);
            while (bIsRecievePacket_OnFail == false)
            {
                yield return(null);
            }

            // 패킷을 받은 뒤에는 체크용 패킷과 보낼 패킷이 일치한다.
            Assert.AreEqual(pPacketCheckRecieve.iValue, pSendPacket.iValue);
            Assert.AreEqual(pPacketCheckRecieve.strValue, pSendPacket.strValue);
        }
        public IEnumerator Convert_Struct_To_Byte_To_Struct_Test()
        {
            SPacketTest_Struct pPacket1 = new SPacketTest_Struct(1, "테스트Test123!@#");
            SPacketTest_Struct pPacket2 = new SPacketTest_Struct();

            Assert.AreNotEqual(pPacket1, pPacket2);

            byte[] arrData = ByteExtension.ConvertByteArray(pPacket1);
            ByteExtension.ConvertPacket(arrData, out pPacket2);

            Assert.AreEqual(pPacket1, pPacket2);

            yield return(null);
        }
示例#3
0
    public IEnumerator 구조체에서_바이트변환_다시_구조체로변환_테스트()
    {
        SPacketTest_Struct pPacket1 = new SPacketTest_Struct(1, "테스트Test123!@#");
        SPacketTest_Struct pPacket2 = new SPacketTest_Struct();

        Assert.AreNotEqual(pPacket1, pPacket2);

        byte[] arrData = SCByteHelper.ConvertByteArray(pPacket1);
        SCByteHelper.ConvertPacket(arrData, out pPacket2);

        Assert.AreEqual(pPacket1, pPacket2);

        yield return(null);
    }
        // 프로젝트 레벨에선, 페킷 헤더 내용을 토대로 페이로드에 있는 패킷을 파싱해야 한다.
        // 테스트 코드이므로 생략
        protected override void OnRecievePacket(STestSession pSessionSender, SPacketHeader pPacketHeader, byte[] arrRecieveData, string strIP)
        {
            /// <see cref="Network_UDP_Test.로컬_UDP송수신_패킷헤더및_패킷디큐_테스트"/>
            switch (pPacketHeader.ePacketType)
            {
            case ETestPacketType.Test_Struct:
            {
                SPacketTest_Struct pPacketTest1;
                if (arrRecieveData.Convert_ToStruct(out pPacketTest1))
                {
                    pPacketCheckRecieve = pPacketTest1;
                    Network_UDP_Test.instance.DoSendPacket(strTestTargetIP, iTestPort, new SPacketTest_Struct(2, "받았다"));
                    bIsRecievePacket_OnFail = true;
                }
            }

            break;

            case ETestPacketType.Test_Class:
                break;

            case ETestPacketType.Test_Reliable_Send:
                if (iReliableRecvCount++ >= 3)
                {
                    Network_UDP_Test.instance.DoSendPacket(strTestTargetIP, iTestPort, new SPacketTest_ReliableRespond("정상응답"));
                }
                else
                {
                    Debug.Log("릴라이어블 리시브 카운트 : " + iReliableRecvCount + " " + DateTime.Now.ToString("mm:ss.") + DateTime.Now.Millisecond);
                    Network_UDP_Test.instance.DoSendPacket(strTestTargetIP, iTestPort, new SPacketTest_ReliableRespond("거짓응답"));
                }

                break;

            case ETestPacketType.Test_Reliable_Respond:
                break;

            // 정해진 패킷 타입이 아닌 경우 -
            default:
                Debug.Log(" OnRecievePacket - " + pPacketHeader.ePacketType);
                break;
            }
        }
        public void RingBuffer_Enqueue_Dequeue_Test()
        {
            SPacketTest_Struct pPacketTest  = new SPacketTest_Struct(1, "인큐_디큐_테스트");
            SPacketTest_Struct pPacketTest2 = new SPacketTest_Struct(2, "더미데이터");

            byte[] arrPacketData = ByteExtension.ConvertByteArray(pPacketTest);
            int    iDataSize     = arrPacketData.Length;

            var pBuffer = new CCircularBuffer <byte>(10240);

            pBuffer.Enqueue(arrPacketData);

            Assert.AreNotEqual(pPacketTest.iValue, pPacketTest2.iValue);
            Assert.AreNotEqual(pPacketTest.strValue, pPacketTest2.strValue);

            byte[] arrPacketData2 = pBuffer.Dequeue_OrNull(iDataSize);
            arrPacketData2.Convert_ToStruct(out pPacketTest2);

            Assert.AreEqual(pPacketTest.iValue, pPacketTest2.iValue);
            Assert.AreEqual(pPacketTest.strValue, pPacketTest2.strValue);
        }