Esempio n. 1
0
        public string sendMessage(RCONMessageType commandType, string msg)
        {
            byte[] request = pack_msg(commandType, msg);
            SendSocket(request);
            string res = ReceiveMessage();

            return(res);
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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
            }
        }