My solution is as follows:
I am using the AsyncSocket library like this:
[socket connectToHost:@"myicecastserver.com" onPort:8000 error:&err];
the trick was to remove 'http://' (yes, I am that silly) then on connect I can send the right headers.