TCP ソケットを使用しても問題は解決しますが、メッセージのフォーマット、ストリーミングなど、多くの処理を行う必要があるため、お勧めできません。既に利用可能なメッセージング プロトコルとライブラリのいずれかを使用してください。
XMPPを検討することをお勧めします。これには、デバイス間のメッセージングを実装するための一連のオープン スタンダードがあります。利点は、XMPP クライアントとサーバーの両方を実装するために利用できるライブラリがたくさんあることです。
Android デバイスに XMPP クライアントを実装するには、 Smackというライブラリを使用できます。これは実際には Java ベースのライブラリです。Smack の Android ポートであるAsmackを使用して Facebook XMPP チャット クライアントを実装しました。Smack のドキュメントは Asmack にも適用できます。ただし、Asmack は 2 年間更新されておらず、いくつかの問題があり、クライアントを Smack に変更して、新しいバージョンが Android でうまく動作するかどうかを確認することを考えていました。
XMPP サーバーの実装については、Smack を作ったのと同じ人が作ったOpenfireをチェックしてください。私はまだこれを使用していませんが、プロジェクト ページには Openfire のセットアップに関する詳細なドキュメントがあります。私が使用した Smack ライブラリの品質から判断すると、Openfire はかなりうまく機能すると思います。
幸運を!