예제 #1
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            MemoryStream m = new MemoryStream();

            for (long i = 0; i < hb1.ByteProvider.Length; i++)
            {
                m.WriteByte(hb1.ByteProvider.ReadByte(i));
            }
            byte[] payload = m.ToArray();
            foreach (ClientInfo client in Global.clients)
            {
                QPacket q = new QPacket();
                q.m_oSourceVPort      = new QPacket.VPort(0x31);
                q.m_oDestinationVPort = new QPacket.VPort(0x3f);
                q.type          = QPacket.PACKETTYPE.DATA;
                q.flags         = new List <QPacket.PACKETFLAG>();
                q.payload       = new byte[0];
                q.uiSeqId       = (ushort)(++client.seqCounter);
                q.m_bySessionID = client.sessionID;
                RMCP rmc = new RMCP();
                rmc.proto    = (RMCP.PROTOCOL)protoIDs[toolStripComboBox1.SelectedIndex];
                rmc.methodID = Convert.ToUInt32(toolStripTextBox1.Text);
                rmc.callID   = ++client.callCounterRMC;
                RMCPCustom reply = new RMCPCustom();
                reply.buffer = payload;
                RMC.SendRequestPacket(client.udp, q, rmc, client, reply, true, 0);
            }
        }
예제 #2
0
        private string GetRMCDetails(QPacket q)
        {
            RMCP         p = new RMCP(q);
            MemoryStream m = new MemoryStream(q.payload);

            m.Seek(p._afterProtocolOffset, 0);
            if (m.ReadByte() == 1)
            {
                return(p.proto + " " + Helper.ReadU32(m).ToString("X"));
            }
            else
            {
                return(p.proto + " fail");
            }
        }