Для потоковой передачи мультимедиа нормально (и на самом деле часто предпочтительнее), что кадры отбрасываются из-за загруженного трафика. Однако для информации о пробивании отверстий нам нужна информация, иначе дальнейший процесс не может продолжаться. Как вы думаете, мы можем сначала использовать TCP для получения информации, необходимой для пробивки отверстий; после этого мы используем UDP для потоковой передачи мультимедиа.

аюсь добавить сеть через Интернет в мою игру, используя Peer to Peer. Я уже реализовал версию только для локальной сети, которая использует одноранговые классы .NET для подключения в локальной сети.

Я понял, что мне нужно использовать дырокол UDP, чтобы установить соединение с другими клиентами, которые находятся за брандмауэром.

Вот как я начал это реализовывать: сервер - это HTTP-сервер, использующий очень простые PHP-скрипты для выполнения работы.

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

Теперь у меня есть куча вопросов

Может ли сервер быть HTTP-сервером?Когда я делаю запрос к HTTP-серверу, порт клиента меняется каждый раз, когда делается запрос. Всегда ли частная конечная точка соответствует одной и той же общедоступной конечной точке?Должен ли запрос к серверу иметь ту же исходную конечную точку, что и UDP-сообщения клиенту?Есть ли способ подключиться к серверу HTTP в C #, используя указанную конечную точку источника?Есть ли проблемы с моей реализацией?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос