/// <summary> /// 处理接收到的数据 /// </summary> /// <param name="data"></param> /// <returns>是否成功</returns> private bool ProcessByte(ReciveData data) { try { //将收到的数据存在缓冲区 byte[] temp = new byte[data.Actual]; Array.Copy(data.Buffer, 0, temp, 0, temp.Length); data.UserToken.DataList.AddRange(temp); //数据超过Tcp自定义头部长度 if (data.UserToken.DataList.Count > NetWorkBase.TcpHeadLength && data.UserToken.DataList.Count >= data.UserToken.CurrentPackageLength) { //创建信息容器 List <ReciveData> list = new List <ReciveData>(); //处理完成后 不管连接是否失效 那信息都是有效的 DecodeData(list, data.UserToken); if (list.Count > 0) { foreach (var item in list) { //加入队列 MCQ.Enqueue(item); } } } } catch (Exception e) { data.UserToken.Reset("处理接收到的数据:" + e.Message); return(false); } return(true); }