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); } }
public static void ProcessPacket(byte[] data, IPEndPoint ep) { StringBuilder sb = new StringBuilder(); foreach (byte b in data) { sb.Append(b.ToString("X2") + " "); } QPacket p = new QPacket(data); WriteLog(5, "received : " + p.ToStringShort()); WriteLog(10, "received : " + sb.ToString()); WriteLog(10, "received : " + p.ToStringDetailed()); QPacket reply = null; ClientInfo client = null; if (p.type != QPacket.PACKETTYPE.SYN) { client = Global.GetClientByIDrecv(p.m_uiSignature); } switch (p.type) { case QPacket.PACKETTYPE.SYN: reply = QPacketHandler.ProcessSYN(p, ep, out client); break; case QPacket.PACKETTYPE.CONNECT: if (client != null) { reply = QPacketHandler.ProcessCONNECT(client, p); } break; case QPacket.PACKETTYPE.DATA: RMC.HandlePacket(listener, p); break; case QPacket.PACKETTYPE.DISCONNECT: if (client != null) { reply = QPacketHandler.ProcessDISCONNECT(client, p); } break; case QPacket.PACKETTYPE.PING: if (client != null) { reply = QPacketHandler.ProcessPING(client, p); } break; } if (reply != null && client != null) { Send(reply, client); } }
public static void ProcessDATA(QPacket p) { RMC.HandlePacket(p); }