using System; using System.Net; using System.Net.Sockets; using System.Reflection; using FilterAPI.Networking; namespace FilterMain.LocalNetworking { public class LocalClient : SingleClient, IDisposable { public LocalClient(Socket AcceptedSocket, IPEndPoint AcceptedEndPoint) : base(AcceptedSocket, AcceptedEndPoint) { } public override void Connected() { } public void SendPacket(Packet ServerPacket) { Byte[] PacketBuffer; ServerPacket.ToArray(out PacketBuffer); Send(PacketBuffer); } public override void Received(Byte[] Buffer) { using (var ClientPacket = new Packet(Buffer)) { if (!ClientPacket.SetOPCode()) { Dispose(); } else if (Program.LocalHandlers.HasHandler(ClientPacket.OPCode)) { try { MethodInfo PacketMethod = Program.LocalHandlers.GetHandler(ClientPacket.OPCode); Action PacketAction = Program.LocalHandlers.GetAction(PacketMethod, this, ClientPacket); PacketAction(); } catch { } } } } public override void Disconnected() { } } }