У меня есть программа сокетов, которая требует, чтобы порт 1002 был открыт, и я хочу знать, как переносить вперед в C++ на windows, поэтому я могу использовать этот порт свободно?Как переместить вперед в C++?
ответ
Пересылка портов выполняется перед клиентской системой, как правило, на маршрутизаторе.
Я считаю, что некоторые приложения используют Universal Plug and Play для связи с восходящим маршрутизатором, чтобы открыть порт публично, но вам нужно будет сделать много исследований, чтобы посмотреть, как это делается: у меня нет ни малейшего.
Вы не можете переносить на язык программирования, то есть что-то, что настроено на маршрутизаторе.
UPnP предоставляет XML API для этого; многие (если не все) маршрутизаторы поддерживают это из коробки. – Luke
Если маршрутизаторы не переносят в программное обеспечение, я не уверен, как они справляются с этим ... –
@Jon: очень мило. Учитывая уровень понимания OP, я думаю (как я уверен, вы это сделали) мой вопрос был полезным. – Hogan
Итак, вам нужны UPnP или NAT-PMP. В вашей системе могут быть библиотеки для выполнения этих протоколов, или вы можете использовать muniupnp, на котором есть как сервер для работы в Linux, так и BSD для тестирования и клиентская библиотека.
Нет гарантии, что это будет работать, поэтому вам может потребоваться продолжить работу и использовать STUN, TURN или ICE. Там есть библиотека для выполнения этих вещей here.
И всегда помните, иногда это просто невозможно. Внедрите IPv6, иногда это работает, когда IPv4 этого не делает. Поощряйте пользователей устанавливать v6 и Teredo.
Начиная с Windows XP, Microsoft предлагает UPnP library. На самом деле это довольно сложно использовать, поскольку библиотека просто предлагает основы взаимодействия с сетевыми устройствами. Вам нужно будет изучить различные UPnP specifications, чтобы выполнять такие специфичные для устройства задачи, как переадресация портов. Поверьте мне, это очень тяжелая работа, чтобы сделать сравнительно мало; лучше просто поместить его в свою документацию где-нибудь, чтобы пользователь мог проконсультироваться с руководством по маршрутизатору, чтобы перенаправить необходимые порты. Это то, что делают почти все.
аминь. это очень сложно –
UPnP сложно использовать в качестве программиста, почти так же сложно, как успешно настроить порт на маршрутизаторе для среднего «DHCP? what's-IP-address»? пользователь. Вы можете также просто получить техническую поддержку, сэкономить некоторое время ;-) NAT и брандмауэры - отличный пример технологии, которая является враждебной к хорошему пользовательскому опыту, для системы и среднего пользователя очень сложно общаться в терминах, которые они оба Понимаю. –
Я считаю, что самый популярный подход заключается в написании документации, которая сообщает пользователю, какие порты (ы) должны открываться на своем брандмауэре.
Мой опыт был в том, что так же просто оставить пользователя искать в Интернете сообщения на форуме, рассказывающие им, какие входящие порты используют приложение ;-) –
- 1. Переместить массив вперед в javascript
- 2. Как переместить текстовый курсор вперед?
- 3. как переместить 1 фиксация вперед
- 4. Вперед или Переместить
- 5. Как переместить спрайт «Вперед» в javascript
- 6. Переместить вперед по составной инструкции в emacs
- 7. Как переместить cptscatterplot строку немного вперед
- 8. как захватить пакет параметров вперед или переместить?
- 9. Переместить элемент вперед в списке (SML)
- 10. Пролог: переместить последний элемент в список вперед
- 11. C - fscanf - Вы можете переместить указатель файла вперед?
- 12. Git: Переместить голову на одну фиксацию вперед
- 13. Three.js Переместить объект вперед без переводаZ
- 14. Труба вперед в C#
- 15. Переместить макрос вперед, когда пойман/застрял в процессе
- 16. Как переместить файл в C
- 17. Как переместить указатель в C++?
- 18. TFS переместить сдвиг вперед в той же ветке
- 19. C# вперед интерфейс событий
- 20. C++/CLI вперед заявления
- 21. C++ вперед объявление класса
- 22. Переместить изображения в C#
- 23. вперед argslist «...» из C++ в C Функция
- 24. Переместить курсор 1 слово вперед или назад pycharm
- 25. Переместить курсор в программе на языке C
- 26. Как переместить исключение в IntPtr в C#
- 27. Python/Панды - DataFrame Index - Переместить один месяц вперед
- 28. Переместить аудиоплеер 5 секунд быстрая перемотка назад и перемотка вперед
- 29. Вперед.
- 30. Как остановить перенос adb вперед?
Возможно, вам необходимо установить, почему вы не можете использовать эту программу как есть, и почему вы считаете, что «переадресация портов» является решением вашей проблемы. –
Даже если вы можете переносить свои передачи через порт, вы не сможете обойти запрещенный порт или занятый порт. Вместо этого измените настройки программы сокета. – shinkou
Полуразмерный, но, вероятно, неправильный способ прочитать этот вопрос: «Я пытаюсь сделать http://linux.die.net/man/1/forward компиляцию в Windows, чтобы я мог запускать другую программу, используя другой порт, чем один из них был разработан для использования ». Не уверен, что это имеет отношение к C++. – bk1e