Hi there, you have my sympathy. I have a son of four and have had the same problem. I suggest a few things:
(1) I went to Surestart when he was two and a half and talked to the support worker there (about slapping Jack) and she was a great help. She gave me a video called '123 Magic' and when I watched it and used the approach, for the first time Jack actually obeyed me. My sisters were very impressed with his good behaviour as we got into being consistent with it. I really recommend getting '123 Magic!' Maybe google it or ebay if you can't find it any other way.
To briefly explain how I changed from your situation of feeling I had no alternative but smacking: I wasn't using the naughty step properly. After watching the video, I learnt to sit him on the stairs (I had to sit with him and hold him down with a hand across his knee) and didn't give him any eye contact for 2 mins - he hated it, and would do anything to avoid it. Then I just had to say '1...2...3.. time out' ((count slowly to 5 in your head between each one) - within a week he would co-operate when I got to 2. After this I stopped smacking him as I was back in control. We rarely had to resort to actually sitting on the stairs. I didn't smack him again for six months - the approach slides if you wobble and start talking and giving out instead of being quiet and firm. You shouldn't need to shout or get angry - if you do, just go back to the video and brush up, and strengthen your resolve!
Now he's older I tell him he gets no bedtime stories if I get to 3 (count slowly but be firm). You must follow through on the threat. This now works well too. I had found the naughty corner got difficult as he refused to co operate with it in the end so use something routine he really loves. It seems awful but it makes life a lot more peaceful and calm. I was able to stop shouting and smacking.
(2)Part of my problem was total geographical isolation as a parent from my family, I had no friends either and was very stressed as my husband was very ill in hospital for two years at the start. Do you have enough family and friends supporting you? I recommend developing a network of friends or asking family for regular support or get a baby sitter regularly. Sounds like you're stressed and exhausted. Look after your own needs as well as everyone else's. You're important too!
(3) On the food issue, Jack's always had a problem there too as I give him too much attention when he doesn't eat - he won't eat till he has got my attention by not eating. A child care worker recently told me to ignore him totally and within four days you'll see a change. (haven't been able to carry out in practise yet!) He just wants your attention, negative or otherwise. Try not to worry too much about him not eating - apparently you should look at his intake over a few days rather than over a day. If he's hungry, he'll eat.
(4)If he's wound up and screams when you leave the room, try a bit of nice calming television... then maybe some scribbling on an art pad together.
Having said all this, I do end up resorting to smacking occasionally (eg if he runs on the road) - I would say you're better never to be tempted to do it once as it makes it easier to do it again. I need a brush up on the video! There is also a second video on how to get them to do what you want...
Using praise lots and ignoring bad behaviour is really the best policy if you can manage it.
Best of luck!