public override void Read(StreamReader sr, RemotePacketState state) { var input = sr.ReadToEnd(); if (input.StartsWith("ping")) { _tmp = "pong"; } }
public static void AcceptPacket(RemotePacketState remoteState, NetworkClient.PacketDataContainer packetData) { var packetBuffer = new byte[packetData.Buffer.Length - 5]; Buffer.BlockCopy(packetData.Buffer, 5, packetBuffer, 0, packetBuffer.Length); var packetId = BitConverter.ToUInt32(packetData.Buffer, 1); Logger.Debug($"Trying to accept packet with id {packetId}"); Type packetType; if ((packetType = FindPacketWithId(packetId)) == null) { // Unknown packet Logger.Debug($"Unknown packet id '{packetId}' from [/{packetData.Remote as IPEndPoint}]"); return; } NetPacket netPacket; try { netPacket = (NetPacket)Activator.CreateInstance(packetType); } catch (Exception e) { Logger.Error($"Unable to create instance of packet id '{packetId}'", e); return; } try { using (var sr = new StreamReader(new MemoryStream(packetBuffer))) { netPacket.Read(sr, remoteState); netPacket.Process(ClientInstance.PacketHandler); new Task(() => { ClientInstance?.SendPacket(netPacket, packetData, remoteState); }).RunSynchronously(); } } catch (Exception e) { Logger.Error($"Unable to process packet '{netPacket}'", e); } }
public override void Write(StreamWriter sw, RemotePacketState state) { sw.Write(_tmp); }
public abstract void Write(StreamWriter sw, RemotePacketState state);
public abstract void Read(StreamReader sr, RemotePacketState state);
public override void Read(StreamReader sr, RemotePacketState state) { }