Я работаю над многопользовательским модулем своего игрового движка. У меня нет кода для публикации, потому что и сервер, и клиент отправляют и получают то, что я хочу, так что это гораздо более теоретический вопрос. Я пытался найти ответ в Интернете, но ничто, казалось, не указывало мне в правильном направлении.UDP: Что нужно знать о
В принципе, у меня есть базовый сервер, с которым можно подключиться, чтобы видеть статистику, подключаться к другим серверам GAME и т. Д. Вся эта клиент-серверная модель - это TCP. Однако проблема связана с моим игровым сервером. В этом случае TCP-соединение между всеми игроками и сервером устанавливается на определенном порту, и я отправляю пакеты на и с сервера на другом порту через UDP. Причиной этого является то, что я могу отделить важные сообщения от менее важных «государственных» обновлений. Локально это работает отлично, однако, когда я пытаюсь это «через Интернет», пакеты отправляются, но не принимаются.
TCP-соединение устанавливается через Интернет, но пакеты UDP не попадают в их местоположение. Я попытался добавить правила в брандмауэр Windows (исходящий и входящий), и я выполнил переадресацию портов во всех системах. Я знаю, что это не проблема с моим кодом.
Обе системы работают на 64-разрядной Windows 7. Я отправляю 64 байтовых пакета 40 раз в секунду, а не один, и это не проблема с пакетом.
И, наконец, мой вопрос: Какие еще вещи могут блокировать пакеты UDP? Что мне нужно учитывать? Я прошел мимо забвения, чтобы связать() этап и т. Д.
Я понимаю, что это очень теоретический вопрос и широкий вопрос, но я не уверен, что еще делать, поскольку проблема больше не лежит в коде. Я должен пропустить что-то простое. Любые рекомендации или рекомендации приветствуются. Опять же, извините за то, насколько широкий вопрос, но это мое последнее средство.
Спасибо!
для UDP я использую порт 667, а для TCP я использую порт 666. Я знаю его в диапазоне 0-1024, но я пробовал все порты. Я использую Windows 7 для всех систем, если это вообще помогает. –
Для сетевых конфигураций я пересылаю все TCP 666 на сервер и UDP 667. TCP работает нормально, но UDP - это то, что отправляется, но не получено. Я также создал правила входящего и исходящего трафика в брандмауэре Windows, но это ничего не изменило. –
Спасибо за этот ответ. Это потрясающе. Я не искал лекции о различиях между TCP и UDP, но больше о том, как я мог бы исправить проблему за пределами кода, который именно вы предоставили. –