1

Я пытаюсь написать более простую клиент-серверную программу, используя свой ноутбук в качестве сервера и несколько устройств Android в качестве клиентов. Сервер прослушивает порт (скажем, 5902), пока клиент не попытается подключиться. Потоки создаются на сервере, и связь происходит.

В дружественной лабораторной среде практически без брандмауэра это работает отлично.

Дома у меня есть AT & T U-Verse с маршрутизатором Motorola NVG510 и брандмауэром по умолчанию. Я понимаю, что мне нужно открыть этот порт на брандмауэре для каждого устройства, потому что теперь NVG510 открывает порты - для каждого устройства отдельно.

Но попытка открыть один и тот же порт на нескольких устройствах приводит к ошибке конфликта крошечных отверстий (я так понимаю, именно так это и звучит: открытие порта - это крошечное отверстие, а конфликт с одним и тем же портом, открытым для двух устройств, является конфликтом).

Есть ли способ сделать то, что я пытаюсь сделать на моем домашнем маршрутизаторе? Было бы неплохо поработать над этим проектом дома.

(Примечание: это строго о проблеме с сетью. Базовое клиент / серверное программное обеспечение работает в других средах.)

Обновление: в благоприятной лабораторной среде каждое устройство имеет свой IP-адрес. В моей домашней сети я ограничен адресами переадресации портов 192.168.1.x, которые, как я подозреваю, являются ключевым отличием.

2 ответа2

1

Вы перенаправляете трафик, поступающий через порт, на устройство за межсетевым экраном. Нет необходимости открывать порт "для каждого устройства", если все они подключены к одному и тому же сервису.

Представьте, что это общедоступная услуга, ожидаете ли вы, что вам придется открывать порт для каждого человека в Интернете, который может захотеть получить к нему доступ? :)

В любом случае, для вашего NVG510: в разделе NAT/Gaming вы создаете «Custom Service» (имя, порт для прослушивания, протоколы для переадресации), затем добавляете «Hosted Application», для которого вы выбираете новую пользовательскую службу, которую вы только что создали, и введите IP-адрес сервера, на который вы хотите перенаправить этот трафик.

Больше информации на PortForward.com

-1

У большинства клиентов, таких как SSH, есть возможность установить другой порт, например, если ваш сервер 5902, а клиент переходит к 5903 на прямом порту маршрутизатора с 5903 по 5902, это означает, что вы можете переадресовать несколько устройств на один порт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .