«Классы Socket и ServerSocket могут использоваться только в моей локальной сети.»
Откуда ты это взял?
В любом случае, Socket и ServerSocket вообще не ограничены локальной сетью. Это не локально:
Socket s = new Socket("www.java2s.com", 80);
Однако, если ваш клиент и сервер находятся в разных сетях, вам необходимо настроить правильную маршрутизацию (т.е. настроить DMZ маршрутизатора и т. Д.).