K.N.
Hi S.,
I think Patty had some great advice for you. I'll add to it with a couple thoughts. When my kids would whine, I would continue doing what I was doing and simply say, "I can't understand your voice when you talk like that." After I'd repeat that line a few times then I'd add "Try telling me in your nice voice." When they did, I'd say, "Oh, I like your nice voice so much. Now I can listen to you." It's an exhausting lesson but worth it.
Also (and this is true for ALL negative behavior), NEVER reinforce their negative bahavior by telling people what they do in front of them. For example, when a child hides their head when spoken to, I hear so many parents say, "Oh, she's so shy." Rather, it would be better to look at the other person and simply say, "sorry". Then whisper to the child, "when people talk to you, it is polite to look at them and answer".
Never let your son hear you say, "he is so whiney". Only acknowledge good behavior to others in his presence.
Hang in there. If your husband is gone as much as I expect he is a driver, whining kids can be doubly exhausting with no break. Find time for your needed breaks!
K.