TCP is full duplex two-way communication. HTTP uses a request / response model. See if you are recording a chat or messaging application. TCP will work much better because you can report this to the client immediately. While with HTTP you should do some tricks, such as a lengthy poll.
However, TCP is just a stream of bytes. You must find another protocol to define your messages. You can use Google ProtoBuffer for this.