Ответ 1
В университетском проекте читайте несколько советов о сокетах. Я верю, что это то, чего ожидает ваш профессор от вас. Возьмем, например, следующее: http://www.oracle.com/technetwork/java/socket-140484.html
Существует 2 общих решения: серверный и серверный. В случае серверных решений все ваши клиенты должны быть предварительно настроены с IP-адресом сервера. Сервер открывает сокет сервера и начинает прослушивание. Таким образом, каждый клиент подключается к серверу и регистрам. Регистрация очень проста: серверу просто нужен IP-адрес клиента. Теперь сервер содержит список подключенных клиентов и отправляет список каждому клиенту. Чтобы сделать приложение peer2peer, каждый клиент также открывает сокет сервера. Когда клиент A хочет подключиться к клиенту B, он просто подключается к своему сокету.
Вы можете реализовать решение без сервера. В этом случае вам необходим механизм обнаружения, основанный, например, на трансляции.
Надеюсь, это поможет. Удачи.