Beispiel #1
0
    /*
     * void OnApplicationFocus(bool focusStatus) {
     * if (focusStatus) {
     *              if (!NetManager.Connected) {
     *                      NetManager.ReInit();
     *                      GameObject.DestroyImmediate(waitingParentT);
     *                      GameObject newAnchorObject = new GameObject("Anchor");
     *                      GameObject uiroot = GameObject.Find("UI Root (2D)");
     *                      newAnchorObject.transform.parent = uiroot.transform;
     *                      newAnchorObject.transform.localScale = Vector3.one;
     *                      UIAnchor anchor = newAnchorObject.AddComponent<UIAnchor>();
     *                      anchor.side = UIAnchor.Side.Center;
     *                      waitingParentT = newAnchorObject.transform;
     *                      StartCoroutine("_CreateLoginView");
     *              }
     *      }
     * }
     */

    void _LoadLinkBeforeLoad()        // 加载 主要管理类
    {
        m_NetMgr      = _CreateLink <NetMgr>();
        m_ProtocolMgr = _CreateLink <ProtocolMgr>();
        m_BundleMgr   = _CreateLink <BundleMgr>();
        m_MainPlayer  = _CreateLink <Player>();
    }
Beispiel #2
0
 // 处理数据  根据 协议号 分发给其他 (handler) 处理
 public void ProcessMsg(MessageData info)
 {
     if (info == null)
     {
         return;
     }
     ProtocolMgr.Process(info.body);
 }
Beispiel #3
0
 public UdpSocket()
 {
     DaemonThread          = new DaemonThread();
     ProtocolMgr           = new ProtocolMgr();
     ReceiveBufferSize     = 1024;
     UserToken             = new AsyncSocketUserToken(ReceiveBufferSize);
     UserToken.AsyncSocket = this;
     UserToken.ProtocolMgr = ProtocolMgr;
     UserToken.ReceiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(IO_Completed);
     UserToken.SendEventArgs.Completed    += new EventHandler <SocketAsyncEventArgs>(IO_Completed);
 }
Beispiel #4
0
    public NetMessageMgr()
    {
        m_ProtocolMgr = new ProtocolMgr();

        m_Client                 = new XTcpClient();
        m_Client.OnConnected    += HandleOnConnected;
        m_Client.OnDisconnected += HandleOnDisconnected;
        m_Client.OnError        += HandleOnError;
        m_Enable                 = false;
        m_Serializer             = new MySerializer();
    }
Beispiel #5
0
        public AsyncSocket(int numConnections)
        {
            NumConnections           = numConnections;
            ReceiveBufferSize        = 1024;
            AsyncSocketUserTokenPool = new ObjectPool <AsyncSocketUserToken>(numConnections);
            AsyncSocketUserTokenList = new ObjectList <AsyncSocketUserToken>();
            MaxNumberAccepted        = new Semaphore(numConnections, numConnections);
            AsyncSocketUserToken userToken;
            ProtocolMgr          oPacketProcess = new ProtocolMgr();

            for (int i = 0; i < NumConnections; i++)
            {
                userToken             = new AsyncSocketUserToken(ReceiveBufferSize);
                userToken.AsyncSocket = this;
                userToken.ProtocolMgr = oPacketProcess;
                userToken.ReceiveEventArgs.Completed += new EventHandler <SocketAsyncEventArgs>(IO_Completed);
                userToken.SendEventArgs.Completed    += new EventHandler <SocketAsyncEventArgs>(IO_Completed);
                AsyncSocketUserTokenPool.Push(userToken);
            }
        }
Beispiel #6
0
    /// <summary>
    /// 链接回调
    /// </summary>
    /// <param name="ar"></param>
    void ConnectCallback(IAsyncResult ar)
    {
        try
        {
            Socket socket = (Socket)ar.AsyncState;
            socket.EndConnect(ar);

            m_IsConnectSuccessed     = true;
            m_MsgThread              = new Thread(MsgThread);
            m_MsgThread.IsBackground = true;
            m_MsgThread.Start();

            m_HeartThread = new Thread(PingThread);
            m_HeartThread.IsBackground = true;
            m_HeartThread.Start();
            ProtocolMgr.SecretRequest();
            Debug.Log("Socket Connect Success");
            m_Socket.BeginReceive(m_ReadBuff.Bytes, m_ReadBuff.WriteIdx, m_ReadBuff.Remain, 0, ReceiveCallBack, socket);
        }
        catch (SocketException ex)
        {
            Debug.LogError("Socket Connect fail:" + ex.ToString());
        }
    }
Beispiel #7
0
        public Form1()
        {
            InitializeComponent();

            bool isStart = true;

            ClientMgr client = new ClientMgr();

            client.Init();
            client.StartServer();



            ProtocolMgr.RegisterProtocol(ProtocolMgr.UDP_Hello, (resp) =>
            {
                UdpResponseHelloTest pack = (UdpResponseHelloTest)resp;
                pack.DeSerialize();
                MethodInvoker mi = new MethodInvoker(() =>
                {
                    textBox1.Text = pack.HelloWorld;
                });

                mi.Invoke();
            });


            TaskPoolHelper.Instance.StartALongTask(() =>
            {
                while (isStart)
                {
                    Thread.Sleep(100);
                    client.Update();
                }
            });

            UdpRequestHelloTest package = ProtocolMgr.GetPackageRequest <UdpRequestHelloTest>(-1);

            client.SendUdpMessage(package);

            this.FormClosed += new FormClosedEventHandler((e, obj) =>
            {
                isStart = false;
            });


            //helper = new MPHelper();
            //helper.player = axWindowsMediaPlayer1;
            //LogAgent.Log("我试试!!!");
            //helper.Init((msg) =>
            //{
            //    try
            //    {
            //        LogAgent.Log("我播放完成啦!!!");
            //        throw new Exception("我是一个错");
            //    }
            //    catch (System.Exception ex)
            //    {
            //        LogAgent.LogError(ex.StackTrace);
            //    }
            //});
            //helper.Play("L:\\ABCD.mkv");
        }
Beispiel #8
0
    // Update is called once per frame
    void Update()
    {
        NetManager.Instance.Update();

        if (Input.GetKeyDown(KeyCode.A))
        {
            ProtocolMgr.SocketTest();
            ProtocolMgr.SocketTest();
            ProtocolMgr.SocketTest();
            ProtocolMgr.SocketTest();
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            ProtocolMgr.Register(RegisterType.Phone, "18569944325", "幻世界", "123456", (res) =>
            {
                if (res == RegisterResult.AlreadyExist)
                {
                    Debug.LogError("该手机号已经注册过了");
                }
                else if (res == RegisterResult.WrongCode)
                {
                    Debug.LogError("验证码错误");
                }
                else if (res == RegisterResult.Forbidden)
                {
                    Debug.LogError("改账户禁止注册,联系客服!");
                }
                else if (res == RegisterResult.Success)
                {
                    Debug.Log("注册成功");
                }
            });
        }

        if (Input.GetKeyDown(KeyCode.D))
        {
            ProtocolMgr.Login(LoginType.Phone, "18569944325", "幻世", (res, restoken) =>
            {
                if (res == LoginResult.Success)
                {
                    Debug.Log("登录成功");
                }
                else if (res == LoginResult.Failed)
                {
                    Debug.LogError("登录失败");
                }
                else if (res == LoginResult.WrongPwd)
                {
                    Debug.LogError("密码错误");
                }
                else if (res == LoginResult.UserNotExist)
                {
                    Debug.LogError("用户不存在");
                }
                else if (res == LoginResult.TimeoutToken)
                {
                    Debug.LogError("Token已过期");
                }
            });
        }
    }