LobbyServer.World.Listener.handleWorld C# (CSharp) Method

handleWorld() private method

private handleWorld ( object client ) : void
client object
return void
        private void handleWorld(object client)
        {
            TcpClient tcpClient = (TcpClient)client;
            World world = new World(tcpClient);
            NetworkStream clientStream = tcpClient.GetStream();
            Byte[] message = new Byte[4096];
            Int32 bytesRead;
            while (true)
            {
                bytesRead = 0;
                try
                {
                    bytesRead = clientStream.Read(message, 0, 4096);
                }
                catch
                {
                    break;
                }
                if (bytesRead == 0)
                {
                    break;
                }

                IPacket packet = null;
                switch (message[0])
                {
                    case (Byte)OpCodes.WL_REGISTER_WORLD: packet = new RegisterWorld(); break;
                    case (Byte)OpCodes.WL_SET_DATA: packet = new SetData(); break;
                }
                packet.Write(message, 1, bytesRead - 1);
                packet.Handle(world);
            }
            Log.Error("World.Listener", world.Name + " disconnected!");
            try
            {
                Program.worlds.Remove((Byte)world.Id);
                lock (Worlds)
                {
                    Worlds.Remove(world.Id);
                }
                tcpClient.Close();
            }
            catch(Exception e)
            {
                Log.Error("World.Listener", "Failed to remove disconnected world, exception:\n\n");
                Console.WriteLine(e.ToString());
                return;
            }
        }