питон 2.7.2
Windows 7 32 бит
Позвольте мне предвосхитить этот вопрос: я довольно новичок в сетевом программировании. Я создал простой сервер и клиент, используя встроенный в Python SocketServer
SocketServer.ThreadingTCPServer((host, port), Handler)
Это прекрасно работает, когда хост - «localhost», а клиент и сервер находятся на одном компьютере.
Однако я хочу иметь доступ к серверу через Интернет. Мой компьютер находится за маршрутизатором. Я использую Pystun (ниже)
определить публичный IP-адрес моего компьютера, но я не могу подключиться. Я провел небольшое исследование, и я понимаю, что когда программа открывает порт, маршрутизатор распознает это и перенаправляет трафик на этот компьютер. Похоже, этого не происходит. Я получаю тот же результат с отключенным брандмауэром. Нужно ли использовать переадресацию портов? Как большинство приложений могут общаться из-за маршрутизатора? Я изучил puncher (источник ниже) и переадресацию портов через win32com здесь . Я ищу кого-то, чтобы указать мне в правильном направлении. Как программно заставить сервер открыть порт прослушивания из-за маршрутизатора и перенаправить трафик на него?
Источник перфорации: https://coherence.beebits.net/svn/trunk/Puncher/puncher/base.py
Пыстун: http://pypi.python.org/pypi/pystun