예제 #1
0
        public override void Process(UDPBox udpBox, byte[] packageBytes, IPEndPoint ipEndPoint)
        {
            mTemplate.Deserialize(packageBytes);

            switch (mTemplate.Op)
            {
            case RequestStringPackage.EOp.Request:

                var request = mTemplate.Content;
                UDPBox_GameThreadMediator.Instance.EnqueueToUpdateQueue(() =>
                {
                    var respText           = mOnProcessRequest(request);
                    mTemplate.RequestCache = request;
                    mTemplate.Content      = respText;
                    mTemplate.Op           = RequestStringPackage.EOp.Response;
                    udpBox.SendMessage(mTemplate.Serialize(), ipEndPoint);
                });

                break;

            case RequestStringPackage.EOp.Response:

                var content = mTemplate.Content;
                UDPBox_GameThreadMediator.Instance.EnqueueToUpdateQueue(() =>
                {
                    mOnProcessResponse(mTemplate.RequestCache, mTemplate.Content);
                });

                break;

            default:
                break;
            }
        }
예제 #2
0
        void OnGUI()
        {
            if (GUILayout.Button("Req"))
            {
                mTestPackage.Op      = RequestStringPackage.EOp.Request;
                mTestPackage.Content = "hahaha";

                if (udpBoxPureContainer != null)
                {
                    udpBoxPureContainer.UDPBox.SendMessage(mTestPackage.Serialize()
                                                           , new IPEndPoint(IPAddress.Parse("127.0.0.1"), udpBoxPureContainer.udpBoxBeginPort));
                }
                else
                {
                    udpboxContainer.UDPBox.SendMessage(mTestPackage.Serialize()
                                                       , new IPEndPoint(IPAddress.Parse("127.0.0.1"), udpboxContainer.GetRandomUDPBoxPort()));
                }
            }
        }