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 Send(UdpClient udp, QPacket p, ClientInfo client) { byte[] data = p.toBuffer(); StringBuilder sb = new StringBuilder(); foreach (byte b in data) { sb.Append(b.ToString("X2") + " "); } WriteLog(5, "send : " + p.ToStringShort()); WriteLog(10, "send : " + sb.ToString()); WriteLog(10, "send : " + p.ToStringDetailed()); udp.Send(data, data.Length, client.ep); }
public static void Send(QPacket p, ClientInfo client) { byte[] data = p.toBuffer(); StringBuilder sb = new StringBuilder(); foreach (byte b in data) { sb.Append(b.ToString("X2") + " "); } WriteLog("send : " + sb.ToString(), !Global.useDetailedLog); WriteLog("send : " + p.ToStringDetailed(), !Global.useDetailedLog); WriteLog("send : " + p.ToStringShort(), Global.useDetailedLog); listener.Send(data, data.Length, client.ep); }