Пример #1
0
 void OnDisconnected()
 {
     m_State = EnNetState.Lost;
     //Debug.LogWarning("NetMgr:OnDisconnected");
     //Globals.It.UIMgr.ShowMsgBox("连接服务器失败,请稍后再试", "为什么");
     //Globals.It.LogicMgr.OnServerDisconnected();
 }
Пример #2
0
 void OnConnected()
 {
     m_State = EnNetState.Connected;
     //Debug.Log("NetMgr:OnConnected.." + IsConnected());
     //Globals.It.UIMgr.StopWaiting();
     //Globals.It.LogicMgr.OnServerConnected();
 }
Пример #3
0
    IEnumerator CoConnect()
    {
        m_State = EnNetState.Connecting;
        //Globals.It.UIMgr.StartWaiting();
        m_Client.ConnectAsync();
        while (true)
        {
            yield return(new WaitForSeconds(1.0f));

            switch (m_State)
            {
            case EnNetState.Connected:
                //Globals.It.UIMgr.StopWaiting();

                /*foreach (NetWriter.CWriteBase stPack in m_WaitSend)
                 * {
                 *  byte[] buffer = m_NetWriter.Process(stPack);
                 *  if (buffer != null) m_Client.Send(buffer);
                 * }
                 * m_WaitSend.Clear();*/
                yield break;

            case EnNetState.Lost:
                //Globals.It.UIMgr.StopWaiting();
                //Globals.It.UIMgr.ShowMsgBox("网络不给力,稍后再试吧", "朕知道了");
                yield break;
            }
        }
    }
Пример #4
0
    public override void Init()
    {
        m_State  = EnNetState.Lost;
        m_Client = new XTcpClient("127.0.0.1", 1000);
        m_Client.OnConnectedHandler    += OnConnected;
        m_Client.OnDisconnectedHandler += OnDisconnected;
        m_Client.OnErrorHandler        += OnError;

        OnConnectStart();
        m_Client.ConnectAsync();
    }
Пример #5
0
 private void ConnectCallback(IAsyncResult ar)
 {
     try
     {
         Socket client = (Socket)ar.AsyncState;
         client.EndConnect(ar);
         //if connection is failed, client will throw an exceptions.
         Debug.Log("Socket connected to "+client.RemoteEndPoint.ToString());
         m_enStatus = EnNetState.connected;
         CMessage.sm_pSocket = m_pOwner;
         /*m_tSocket.Send()*/
     }
     catch (Exception e)
     {
         OnNetException(e.ToString());
     }
 }
Пример #6
0
		public Worker(string szSvrAddr,int svrPort,MySocket pOwner)
		{
            m_pOwner = pOwner;
            m_enStatus = EnNetState.start_run;
			IPAddress tIpAddr = IPAddress.Parse(szSvrAddr);
			m_tSvrIp = new IPEndPoint(tIpAddr,svrPort);
            m_tSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            m_tSocket.Blocking = true;//
            try
            {
                Debug.Log("Begin Connect!");
                m_tSocket.BeginConnect(m_tSvrIp, new AsyncCallback(ConnectCallback), m_tSocket); 
            }
            catch (Exception se)
            {
                m_enStatus = EnNetState.connect_fail;
                Debug.Log("Connecting failed!");
                return;
            }

            m_enStatus = EnNetState.connecting;

            ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));
		}
Пример #7
0
        private void OnRecv(IAsyncResult ar)
        {
            Debug.Log("OnRecv is called!");
            try
            {
                int nLength = m_tSocket.EndReceive(ar);
                //
                Debug.Log("Recv " + nLength + " Bytes!");
            }
            catch(Exception e)
            {
                m_enStatus = EnNetState.disconeected;

                OnNetException(e.ToString());
            }

            if (m_bRuning)
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc));
            }
        }
Пример #8
0
 private void OnDisconnected()
 {
     m_enStatus = EnNetState.disconeected;
     m_tSocket = null;
     CMessage.sm_pSocket = null;
 }
Пример #9
0
 void OnNetException(string str)
 {
     Debug.Log("OnNetException is called!");
     m_enStatus = EnNetState.connect_fail;
     Debug.Log(str);
 }