Если вы хотите, чтобы каждая станция работала в качестве сервера и клиента, например, чата p2p,
Вы должны реализовать поток с ServerSocket, прослушивая входящие соединения, и, как только он получит соединение, откройте новый поток, чтобы обработать его, чтобы текущий продолжал прослушивать новые соединения.
Чтобы иметь возможность подключаться к другим, просто используйте SocketAddress и Socket в другом потоке, чтобы попытаться подключиться к указанному адресу сервера (например, по списку друзей пользователя)
Вы можете найти множество примеров в чате, прибегая к помощи Google.
веселит.