public override void Send(ByteBuffer data) { if (m_bNeedEncrypt) { EncryptTool.Encrypt(ref data.data, m_iEncryptLen, 1); m_bNeedEncrypt = false; } ByteBuffer sendData = new ByteBuffer(4 + data.data.Length); sendData.writeInt(data.data.Length); sendData.writeBytes(data.data); m_Connect.BeginSend(sendData.data, 0, sendData.data.Length, SocketFlags.None, new AsyncCallback(SendCallback), m_Connect); }
public static void ParseConfig(byte[] bConfig) { m_ConfigData.Clear(); EncryptTool.Decrypt(ref bConfig, 20); string sConfig = Decompress(bConfig); int valuePos = 0; int pos = 0; while (true) { pos = sConfig.IndexOf("------@", valuePos); if (-1 == pos) { break; } pos += 7; int nPos = sConfig.IndexOf('\n', pos); string cfgName = sConfig.Substring(pos, nPos - pos); try { ConfigTable cfgTbl = new ConfigTable(); m_ConfigData.Add(cfgName, cfgTbl); pos = nPos + 1; nPos = sConfig.IndexOf("\n", pos); bool bFlag = true; while (bFlag) { try { cfgTbl.AddColKey(GetNextValue(ref pos, ref nPos, ref bFlag, ref sConfig)); } catch (System.Exception e) { Debug.LogError(String.Format("{0} 表名:{1}", e, cfgName)); } } nPos = sConfig.IndexOf("\n", pos); bFlag = true; valuePos = nPos + 1; while (bFlag) { string rowName = GetNextValue(ref pos, ref nPos, ref bFlag, ref sConfig); int valueNPos = sConfig.IndexOf("\n", valuePos); bool valueFlag = true; int a = 0; ConfigRow rowData = new ConfigRow(); rowData.AddValue(rowName); while (valueFlag) { string value = GetNextValue(ref valuePos, ref valueNPos, ref valueFlag, ref sConfig); value = value.Replace("#r", "\n"); rowData.AddValue(value); ++a; } cfgTbl.AddRow(rowName, rowData); } } catch (System.Exception e) { Debug.LogError(string.Format("{0}.配置表名:{1}", e, cfgName)); } } }