Java.net contient deux principales classes qui te permettrons de faire ce que tu veux :
ServerSocket pour le server.
SOcket pour client et server.
--> Voir javadoc
En plus de cela, faudra utiliser les Thread ( pour que plusieurs clients se connectent simultanément ) et les classes "classiques" gérant les flux d'entrées/sorties.
Pour ce qui est de la transformation en sms, là je séche, la solution m'intéresse également.
Bon courage.