Ejemplo n.º 1
0
        public void Send(Packet packet, Stream outputStream)
        {
            diagnosticPushStream.DumpPacket(packet);

            switch (Status)
            {
            case ServerConnectionStatus.Initial:
                diagnosticPushStream.BaseStream = new StreamToPushStreamAdapter(outputStream);
                diagnosticPushStream.Write(packet.Payload, 0, packet.Length);
                Status = ServerConnectionStatus.PreLogin;
                break;

            case ServerConnectionStatus.PreLogin:
                diagnosticPushStream.BaseStream = new StreamToPushStreamAdapter(outputStream);
                loginStream.BaseStream          = diagnosticPushStream;
                loginStream.Write(packet.Payload, 0, packet.Length);
                break;

            case ServerConnectionStatus.PreGame:
                diagnosticPushStream.BaseStream = new StreamToPushStreamAdapter(outputStream);
                diagnosticPushStream.Write(packet.Payload, 0, packet.Length);
                Status = ServerConnectionStatus.Game;
                break;

            case ServerConnectionStatus.Game:
                diagnosticPushStream.BaseStream = new StreamToPushStreamAdapter(outputStream);
                sendNewGameStream.BaseStream    = diagnosticPushStream;
                sendNewGameStream.Write(packet.Payload, 0, packet.Length);
                break;
            }

            diagnosticPushStream.Finish();
        }