public static Packet ReadPacket(Stream stream) { var packetType = stream.ReadByte(); Packet packet = null; switch (packetType) { case 1: packet = new RequestConnectPacket(); packet.ReadPacketData(stream); return(packet); case 2: packet = new ConnectDecisionPacket(); packet.ReadPacketData(stream); return(packet); case 3: packet = new InputPacket(); packet.ReadPacketData(stream); return(packet); case 4: packet = new GameStatePacket(); packet.ReadPacketData(stream); return(packet); default: throw new Exception("Unrecognized Packet Type"); } }
private void ReceiveStates(UdpClient c, IPEndPoint ip) { while (true) { var res = c.Receive(ref ip); lastNetworkReceived = DateTime.Now; var stream = new MemoryStream(res); var packet = new GameStatePacket(); packet.ReadPacketData(stream); lock (ServerStateBufferLock) ServerStateBuffer.Add(packet); } }