Как на c# организовать обмен сообщениями между сервером и клиентом, если нет белого айпи?
Доброго всем дня!
Суть задачи: игровое программирование. Кооперативная игра, чтобы один игрок выступал сервером, а второй (ну или их может быть штук пять, к примеру) клиентом.
Если бы у сервера был белый айпи и открыты порты, то вообще вопросов нету, подключились и не бубните. Но такая возможность есть не всегда. Когда-то читал, что можно сделать сервер в интернете с белым айпи и использовать его для организации p2p связи. Но все примеры, которые я нашёл рассказывают лишь о локальном p2p соединении. Либо рассказывают о том, что белыми адресами и пробросом портов придётся заниматься вообще всем клиентам. Что звучит ещё хуже.
Однако, я уверен, что каким-то образом подобная техлогия должна работать. Ведь есть же в играх кооп ежим, где сервер в интернете нужен лишь чтобы себе компанию найти, а дальше хостем выступает один игрок.
Буду очень признателен для любую информацию по этому поводу!
сервер в интернете нужен лишь чтобы себе компанию найти, а дальше хостем выступает один игрок.
Не всегда, если клиенты не могут соединиться напрямую, то соединение идет через промежуточные сервера. Думаю что поможет понимание в работе upnp, STUN, TURN. Как пробивать НАТ?