Как определить Publi c IP / порт текущего процесса - PullRequest
0 голосов
/ 18 марта 2020

Я экспериментирую с одноранговой сетью для игры и пытаюсь сделать это без моего собственного главного сервера (не знаю, будет ли это возможно / практично). Моя идея заключается в том, что игра может отправить пакет и каким-то образом получить опубликованный IP-адрес c, с которого данные были отправлены после факта. Публичный c IP / порт может быть представлен игроку, и игроки могут обмениваться этой информацией, которую они могут ввести в свои собственные копии игры, чтобы попытаться напрямую установить соединение с другим игроком. Это будет работать только при использовании NAT, если оба участвующих игрока введут IP / порт друг друга. Я думаю, что этот метод должен быть возможным, если игра может определить, по какому IP / порту другие люди должны пытаться связаться с ним, то есть publi c IP / Port. Publi c IP достаточно легко получить (например, https://www.ipify.org), но я не могу найти способ получить publi c порт процесса. Мне также неясно, когда назначен порт - хотя я полагаю, что это, вероятно, зависит от сетевой библиотеки, которую я использую (которая в данный момент является StreamPeerTCP в Godot - https://docs.godotengine.org/en/3.1/classes/class_streampeertcp.html#enum -streampeertcp-status ). Кто-нибудь знает, вообще, как получить порт publi c, используемый процессом?

...