Задать вопрос
VariusRain
@VariusRain
музыкант-программист-конструктор

Как на c# организовать обмен сообщениями между сервером и клиентом, если нет белого айпи?

Доброго всем дня!

Суть задачи: игровое программирование. Кооперативная игра, чтобы один игрок выступал сервером, а второй (ну или их может быть штук пять, к примеру) клиентом.

Если бы у сервера был белый айпи и открыты порты, то вообще вопросов нету, подключились и не бубните. Но такая возможность есть не всегда. Когда-то читал, что можно сделать сервер в интернете с белым айпи и использовать его для организации p2p связи. Но все примеры, которые я нашёл рассказывают лишь о локальном p2p соединении. Либо рассказывают о том, что белыми адресами и пробросом портов придётся заниматься вообще всем клиентам. Что звучит ещё хуже.

Однако, я уверен, что каким-то образом подобная техлогия должна работать. Ведь есть же в играх кооп ежим, где сервер в интернете нужен лишь чтобы себе компанию найти, а дальше хостем выступает один игрок.

Буду очень признателен для любую информацию по этому поводу!
  • Вопрос задан
  • 1653 просмотра
Подписаться 4 Простой Комментировать
Решения вопроса 1
@dronmaxman
VoIP Administrator
сервер в интернете нужен лишь чтобы себе компанию найти, а дальше хостем выступает один игрок.

Не всегда, если клиенты не могут соединиться напрямую, то соединение идет через промежуточные сервера. Думаю что поможет понимание в работе upnp, STUN, TURN.
Как пробивать НАТ?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
impvision
@impvision
Сетевой админ
Использую это проект - https://www.softether.org/

Разработка Японского Университета города Цукуба.

Если даже нет внешнего адреса, всегда 100% работает DNS имя внутренней сети самого сервиса - очень удобно.

Поддержка всех возможных методов аутентификации, шифрования, вкупе с удобным интерфейсом и поддержкой большого количества ОС.
Ответ написан
GavriKos
@GavriKos
Есть, называется авторитарный сервер. И чтобы не изобретать велосипед - поспользуйтесь готовыми решениями, Photon например
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы