public string sendMessage(RCONMessageType commandType, string msg) { byte[] request = pack_msg(commandType, msg); SendSocket(request); string res = ReceiveMessage(); return(res); }
private byte[] pack_msg(RCONMessageType mtype, string msg) { int msgsize = CalcSize(msg); List <byte> blist = new List <byte>(); blist.AddRange(INT2LE(msgsize)); // Size blist.AddRange(INT2LE(m_uid++)); // ID blist.AddRange(INT2LE((int)mtype)); // Type blist.AddRange(STR2B(msg)); // Body, null terminated ascii string blist.AddRange(STR2B("")); // Null terminated empty string return(blist.ToArray()); }
private void unpack_msg(byte[] packet, out RCONMessageType receiveType, out string remotemsg) { int len = LE2INT(packet, 0); int id = LE2INT(packet, 4); int command = LE2INT(packet, 8); receiveType = (RCONMessageType)command; remotemsg = ""; for (int i = 12; 0 != packet[i]; ++i) { remotemsg += (char)packet[i]; } if (packet[13 + remotemsg.Length] != 0) { // error } }