/// <summary> /// 组织接收消息 /// </summary> /// <param name="bMsg">接收消息</param> /// <returns>CSocketData类</returns> public CSocketData SocketRecive(byte[] bMsg) { try { CSocketData m_Return = new CSocketData(bMsg, Convert.ToUInt32(bMsg.GetLength(0))); return(m_Return); } catch (Exception e) { CEnum.TLogData tLogData = new CEnum.TLogData(); tLogData.iSort = 5; tLogData.strDescribe = "解析Socket数据包失败!"; tLogData.strException = e.Message; throw new Exception("接收数据异常!"); } }
/// <summary> /// 发送消息 /// </summary> /// <param name="eKey">事件类型</param> /// <param name="Msg_Category">消息类型</param> /// <param name="tBody">消息内容</param> /// <returns>客户端消息</returns> public CSocketData SocketSend(CEnum.ServiceKey eKey, CEnum.Msg_Category eCategory, CEnum.Message_Body[] tBody) { try { int iMsgLength = 0; //消息长度 byte[] bMsg = null; TLV_Structure[] tMsg = null; if (tBody != null) { iMsgLength = tBody.GetLength(0); tMsg = new TLV_Structure[iMsgLength]; for (int i = 0; i < iMsgLength; i++) { bMsg = TLV_Structure.ValueToByteArray(tBody[i].eTag, tBody[i].oContent); tMsg[i] = new TLV_Structure(tBody[i].eName, (uint)bMsg.GetLength(0), bMsg); } } else { string strSendMsg = "Get List"; iMsgLength = 1; tMsg = new TLV_Structure[1]; bMsg = System.Text.Encoding.Default.GetBytes(strSendMsg); tMsg[0] = new TLV_Structure(CEnum.TagName.Connect_Msg, (uint)bMsg.GetLength(0), bMsg); } Packet_Body body = new Packet_Body(tMsg, (uint)iMsgLength); Packet_Head head = new Packet_Head(SeqId_Generator.Instance().GetNewSeqID(), eCategory, eKey, body.m_uiBodyLen); CSocketData m_Return = new CSocketData(new Packet(head, body)); return(m_Return); } catch (Exception e) { CEnum.TLogData tLogData = new CEnum.TLogData(); tLogData.iSort = 5; tLogData.strDescribe = "构造Socket数据包失败!"; tLogData.strException = e.Message; throw new Exception("发送数据异常!"); } }