Exemplo n.º 1
0
        public IEnumerator Local_UDP_Connect_Session_Test()
        {
            Network_UDP_Test.EventMakeSingleton(true);
            Network_UDP_Test.instance.DoStartListen_UDP(iTestPort);

            // 세션이 하나도 없어야 한다.
            while (Network_UDP_Test.instance.p_mapNetworkSession.Count != 0)
            {
                yield return(YieldManager.GetWaitForSecond(.1f));
            }
            Assert.IsTrue(Network_UDP_Test.instance.p_mapNetworkSession.Count == 0, Network_UDP_Test.instance.p_mapNetworkSession.ToString());

            SPacketTest_Class pSendPacket = new SPacketTest_Class(2, "보냈다");

            Network_UDP_Test.instance.DoSendPacket(strTestTargetIP, iTestPort, pSendPacket);

            yield return(YieldManager.GetWaitForSecond(.05f));

            STestSession pSession = Network_UDP_Test.instance.p_mapNetworkSession.Values.First();

            DateTime pDateTime = DateTime.Now;
            float    fSecond   = pSession.GetLastConnectionTimeGap_Second(ref pDateTime);

            //Debug.Log("Last Connection Second :" + fSecond);

            Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.새로접속 || pSession.p_eConnectionState == ENetworkConnectionState.연결중, pSession.p_eConnectionState.ToString());

            // 타임아웃보다 조금 더 기다린다.
            yield return(YieldManager.GetWaitForSecond(p_fTimeOutSecond + 0.5f));

            pDateTime = DateTime.Now;
            fSecond   = pSession.GetLastConnectionTimeGap_Second(ref pDateTime);
            Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.연결잠시끊김, pSession.p_eConnectionState.ToString() + " Last Connection Second : " + fSecond);

            // 타임아웃에서 연결종료시간보다 조금 더 기다린다.
            yield return(YieldManager.GetWaitForSecond(p_fTimeDeleteSession - p_fTimeOutSecond + 0.5f));

            Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.연결끊김, pSession.p_eConnectionState.ToString() + " Last Connection Second : " + fSecond);
        }
Exemplo n.º 2
0
    public IEnumerator 로컬_UDP송수신_세션연결및_해제_테스트()
    {
        네트워크_UDP_테스트.EventMakeSingleton(true);
        네트워크_UDP_테스트.instance.DoStartListen_UDP(iTestPort);

        // 세션이 하나도 없어야 한다.
        while (네트워크_UDP_테스트.instance.p_mapNetworkSession.Count != 0)
        {
            yield return(new WaitForSeconds(.1f));
        }
        Assert.IsTrue(네트워크_UDP_테스트.instance.p_mapNetworkSession.Count == 0, 네트워크_UDP_테스트.instance.p_mapNetworkSession.ToString());

        SPacketTest_Class pSendPacket = new SPacketTest_Class(2, "보냈다");

        네트워크_UDP_테스트.instance.DoSendPacket(strTestTargetIP, iTestPort, pSendPacket);

        yield return(new WaitForSeconds(.05f));

        STestSession pSession = 네트워크_UDP_테스트.instance.p_mapNetworkSession.Values.First();

        DateTime pDateTime = DateTime.Now;
        float    fSecond   = pSession.GetLastConnectionTimeGap_Second(ref pDateTime);

        //Debug.Log("Last Connection Second :" + fSecond);

        Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.새로접속 || pSession.p_eConnectionState == ENetworkConnectionState.연결중, pSession.p_eConnectionState.ToString());

        // 타임아웃보다 조금 더 기다린다.
        yield return(new WaitForSeconds(0.35f));

        pDateTime = DateTime.Now;
        fSecond   = pSession.GetLastConnectionTimeGap_Second(ref pDateTime);
        Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.연결잠시끊김, pSession.p_eConnectionState.ToString() + "Last Connection Second : " + fSecond);

        // 타임아웃에서 연결종료시간보다 조금 더 기다린다.
        yield return(new WaitForSeconds(0.35f));

        Assert.IsTrue(pSession.p_eConnectionState == ENetworkConnectionState.연결끊김);
    }