public CNetwork() { this.m_oSocket = null; this.m_oProcess = null; this.m_oLogger = null; this.m_dwSendBuffSize = 0u; this.m_dwRecvBuffSize = 0u; }
public bool AddProgress(INetProcess progress) { if (StableNetImage != null && progress.RunningAccuracy < accuracy_chain.First?.Value) { accuracy_chain.AddLast(progress.RunningAccuracy); double prv_accuracy = 0; int descenting_count = 0; foreach (var acc in accuracy_chain) { if (prv_accuracy < acc) { descenting_count = 0; } else { descenting_count++; } prv_accuracy = acc; } if (descenting_count >= 4 || accuracy_chain.Count > 10) { accuracy_chain.Clear(); StableNetImage = new NetProcessImage(StableNetImage.Image, -1); return(true); } else { return(false); } } else { bool is_stable; if (StableNetImage == null || accuracy_chain.Count > 0) { accuracy_chain.Clear(); accuracy_chain.AddLast(progress.RunningAccuracy); is_stable = false; } else { is_stable = true; } StableNetImage = new NetProcessImage( progress.RunningChistaNet.Image(), progress.RunningAccuracy); return(is_stable); } }
/// <summary> /// 初始化Network /// </summary> /// <param name="oProc"></param> /// <param name="oBreaker"></param> /// <param name="dwSendBuffSize">发送缓存数组</param> /// <param name="dwRecvBuffSize">接收缓存数组</param> /// <param name="strLogDir">network.log的目录</param> /// <param name="bLogEnabled">是否启动log</param> /// <returns></returns> public bool Init(INetProcess oProc, IPacketBreaker oBreaker, uint dwSendBuffSize, uint dwRecvBuffSize, string strLogDir, bool bLogEnabled) { this.m_oProcess = oProc; this.m_oBreaker = oBreaker; this.m_dwSendBuffSize = dwSendBuffSize; this.m_dwRecvBuffSize = dwRecvBuffSize; this.m_PieceBufferIO = new PieceBufferIO(); this.m_oDataQueue = new Queue(); this.m_oLogger = new CNetLogger(strLogDir, bLogEnabled); this.m_oLogger.LogInfo("-----------------------------"); this.m_oLogger.LogInfo("Init network succ"); return(true); }