Client acts like he's my boss, demands things rather than requests them, and refuses to take my expert advice as he thinks he knows better.

My client has started sending demands instead of requests - emails that say "I need x", "We need to do x [sudden random project that is not part of usual workflow]" or "Make sure x". No "please" either. It's so obnoxious.

On calls, every single other client lets me walk them through things as I do that extremely well, but this client always tries to take control of the call and what we're doing, as though he's the "boss", even though he has no idea what he's talking about.

Same client refuses to take my 25 years of expert advice to the point I really wonder why he bothered hiring me in the first place. He comes from a celebrity family and although he seemed down to earth in the beginning, the entitlement has really become apparent. He loves to hear himself talk, is VERY CONFIDENTLY stupid, and ignores my advice as he's so certain he knows best, then continues to make a mess of things.

Recently he asked me about something and I had to explain it MANY times as he just couldn't get my very simple explanations (tons of clients have raved about how easy I make it to understand things, for the record). We were on a call and I was going over it from a new angle and he cut me off and said "It's very simple - xyz" and refuted what I was saying, as though I was the one who wasn't getting it. (It was of course confirmed that I was correct from the beginning.)

It's started to really irritate me. Usually I smoothly fire clients who are this annoying and disrespectful but I confess I'm hanging onto him so far as he is one of my major sources of income. I know I need to address that...

My question is has anyone else experienced this and how did you deal with it?