2013-07-09 4 views
2

Я создал игру «Броненосец» на Java для работы с Sockets и ServerSockets. Игра отлично работает в локальной сети, но я хотел бы иметь возможность играть против кого-то в совершенно другой сети. Я понимаю, что перенаправление портов было бы необходимо, но должен ли я перенаправить порт на каждого клиента, который играет в игру? Или нужно будет только перенаправить порт на маршрутизатор, который использует сервер? Благодарю.Java, игры и переадресация портов

ответ

4

Пересылка портов требуется только на сервере. Любые пакеты, привязанные к клиенту, будут автоматически перенаправлены из первоначального запроса благодаря действию на многих NAT.

Таким образом, вам нужно только перенаправить порт на сервер. Если вы используете Socket и ServerSocket, вам необходимо переслать TCP, если ваш маршрутизатор дает вам выбор. Если используется DatagramSockets, перейдите UDP на любую из конечных точек.

(если вы должны были направить на клиентах, вы, скорее всего, не читали эту страницу без переадресации порта 80)

+0

Отлично, спасибо за ответ! – rstumbaugh

0

подробно остановиться на то, что @hexafraction говорят, вот что вы можете сделать:

Создайте сервер, к которому может подключиться любой клиент. Клиенты обычно могут подключаться ко всему, что хотят. Брандмауэры обычно устанавливают ограничения на информацию, которая может протекать, но не вытекать. Поэтому, если клиенты знают, к чему подключается сервер, они могут подключиться к нему без изменения своего брандмауэра, а затем сервер будет координировать передачу данных между клиентами.

+0

Я бы также добавил информацию о NAT, особенно с участием UDP. – hexafraction

+0

@hexafraction у вас уже есть, я просто разрабатываю –

0

Я сделал это, и все, что мне нужно было сделать, это переслать порт, который я использовал в своем маршрутизаторе, на свой местный номер I.P. адрес. Если вы не знаете, что ваш локальный IP-адрес запускает командную строку (при условии, что вы используете окна) и запускаете ipconfig, чтобы понять это. Если ваш дом с помощью беспроводного маршрутизатора получает доступ к нему браузером до 192.168.1.1 Надеюсь, что это поможет!

Смежные вопросы