void OnDisconnected() { m_State = EnNetState.Lost; //Debug.LogWarning("NetMgr:OnDisconnected"); //Globals.It.UIMgr.ShowMsgBox("连接服务器失败,请稍后再试", "为什么"); //Globals.It.LogicMgr.OnServerDisconnected(); }
void OnConnected() { m_State = EnNetState.Connected; //Debug.Log("NetMgr:OnConnected.." + IsConnected()); //Globals.It.UIMgr.StopWaiting(); //Globals.It.LogicMgr.OnServerConnected(); }
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; } } }
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(); }
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()); } }
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)); }
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)); } }
private void OnDisconnected() { m_enStatus = EnNetState.disconeected; m_tSocket = null; CMessage.sm_pSocket = null; }
void OnNetException(string str) { Debug.Log("OnNetException is called!"); m_enStatus = EnNetState.connect_fail; Debug.Log(str); }