Для ясности дополню другие ответы.
1. Оба клиента подключаются к серверу.
2. Сервер отдаёт им список всех подключённых клиентов.
3. Один клиент подключается к другому, чей адрес он получил от сервера.
Это не работает, если у клиентов нет белых адресов. Решается проблема следующими способами:
- ретрансляции и соединение клиентов через сервер (стандартное решение для большинства игр)
- подключение к клиентам с белыми адресами
- проброс портов и настройка nat (если вдруг ваша игра умеет ломать сети)
- клиенты долбят я друг к другу через udp
- сервер соединяет концы соединений клиентов (разве какой-то nat это разрешает?)
Короч, надо обойти nat.