/*解析登录信息的,手贱+傻逼,不小心写多 * private static void GetLoginInfo(ref byte[] btRecv,ref PackageMetaData pmdData){ * string strUserName="",strUserPass=""; * int nNameLen = 0; * for (int i=pmdData.nHeaderLen;btRecv[i]!='\0';i++) { * byte[] arrTmpByte = new byte[] { btRecv[i] }; * strUserName += System.Text.Encoding.ASCII.GetString(arrTmpByte); * nNameLen++; * } * for (int i=(pmdData.nHeaderLen+nNameLen+1); btRecv[i] != '\0';i++) { * byte[] arrTmpByte = new byte[] { btRecv[i] }; * strUserPass += System.Text.Encoding.ASCII.GetString(arrTmpByte); * } * pmdData.Set("name",strUserName); * pmdData.Set("password", strUserPass); * }*/ //包内容编号(int)|时间戳(long)|玩家id(int) private static PackageMetaData ParseHeader(byte[] btRecv) { PackageMetaData data = new PackageMetaData(); data.Set("type", BitConverter.ToInt32(btRecv, 0).ToString()); data.Set("time", BitConverter.ToInt64(btRecv, sizeof(System.Int32)).ToString()); data.Set("id", BitConverter.ToInt32(btRecv, sizeof(System.Int32) + sizeof(System.Int64)).ToString()); return(data); }
private static void GetPosition(ref byte[] btRecv, ref PackageMetaData pmdData) { double lfX = BitConverter.ToSingle(btRecv, pmdData.nHeaderLen); double lfY = BitConverter.ToSingle(btRecv, pmdData.nHeaderLen + sizeof(System.Single)); double lfZ = BitConverter.ToSingle(btRecv, pmdData.nHeaderLen + 2 * sizeof(System.Single)); pmdData.Set("x", lfX.ToString()); pmdData.Set("y", lfY.ToString()); pmdData.Set("z", lfZ.ToString()); }