private void CallBackNetState(EClientNetWorkState a_eState) { try { if (this.m_StateCallBack != null) { this.m_StateCallBack(a_eState, this.m_strRomoteIP, this.m_uRemotePort); } } catch (Exception e) { this.DidConnectError(e); } }
private void CallBackNetState(EClientNetWorkState a_eState) { try { lua_.RawGetI(LuaAPI.LUA_REGISTRYINDEX, net_state_func_handle_ref_); lua_.PushInteger((int)a_eState); lua_.PushString(m_strRomoteIP); lua_.PushInteger(m_uRemotePort); lua_.PCall(3, 0, 0); } catch { DidDisconnect(); } }
public void Update() { MemoryStreamEx comunicationMem = this.m_ComunicationMem; Monitor.Enter(comunicationMem); try { if (this.m_ComunicationMem.Length > 0L) { if (this.m_Reader != null) { this.m_Reader.DidReadData(this.m_ComunicationMem.GetBuffer(), (int)this.m_ComunicationMem.Length); } this.m_ComunicationMem.Clear(); } } finally { Monitor.Exit(comunicationMem); } object eNetWorkState = this.m_eNetWorkState; Monitor.Enter(eNetWorkState); try { EClientNetWorkState eClientNetWorkState = (EClientNetWorkState)((int)this.m_eNetWorkState); if (eClientNetWorkState == EClientNetWorkState.E_CNWS_CONNECTED) { this.CallBackNetState(eClientNetWorkState); m_eNetWorkState = EClientNetWorkState.E_CNWS_NORMAL; } if (eClientNetWorkState > EClientNetWorkState.E_CNWS_NORMAL && this.m_ClientSocket != null) { this.ReleaseSocket(); this.CallBackNetState(eClientNetWorkState); } } finally { Monitor.Exit(eNetWorkState); } }
public void Update() { lock (m_ComunicationMem) { if (m_ComunicationMem.Length > 0) { if (m_Reader != null) { m_Reader.DidReadData(m_ComunicationMem.GetBuffer(), (int)(m_ComunicationMem.Length)); } m_ComunicationMem.Clear(); } } lock (m_eNetWorkState) { EClientNetWorkState eState = (EClientNetWorkState)m_eNetWorkState; if (eState > EClientNetWorkState.E_CNWS_NORMAL) { if (m_ClientSocket != null) { ReleaseSocket(); CallBackNetState(eState); eState = EClientNetWorkState.E_CNWS_NOT_UNABLE; } } else if (connectState == EClientConnectState.E_NOT_CONNECT) { connect_timeout += Time.deltaTime; if (connect_timeout > CONNECT_TIME_OUT) { connect_timeout = 0; DidDisconnect(); } } else if (connectState == EClientConnectState.E_CONNECT) { // µ÷ÓÃlua½Ó¿Ú CallBackNetState(EClientNetWorkState.E_CNWS_NORMAL); connectState = EClientConnectState.E_NOTICE_CONNECT; } } }