Можно ли получить доступ к различным портам на веб-сервере? - PullRequest
0 голосов
/ 18 января 2011

Я создал игру и хочу выложить ее онлайн. Я хочу купить веб-сайт (я, вероятно, буду использовать goddaddy, чтобы купить доменное имя и использовать его в качестве веб-хостинга), чтобы использовать его в качестве сервера для управления игрой. Поскольку для каждой игры мне потребуется отдельный сервер, мне потребуется, чтобы сервер каждой игры существовал на разных портах. Таким образом, это приводит к моему вопросу, возможно ли получить доступ к этим портам на моем будущем веб-сервере? (Я написал программу на Java, поэтому я предполагал, что получу доступ к портам со стороны сервера, выбрав порт для ServerSocket и со стороны клиента, используя IP-адрес веб-сайта и выбранный порт для сокета. )

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

спасибо большое, Ian

Ответы [ 5 ]

2 голосов
/ 18 января 2011

Если вы имеете в виду, что вы собираетесь создать свой собственный TCP-сервер, вы, очевидно, можете создать столько экземпляров вашего сервера и настроить их для прослушивания разных портов. Но сейчас 2011 год. Это решение было в порядке в начале 90-х годов.

Я бы предложил вам использовать Restful API, который работает через HTTP. В этом случае вы можете переадресовывать звонки на серверную часть каждого приложения, используя URL, например,

http://www.lan.com/foo/login?user=u123&password=123456 - войти в приложение foo

http://www.lan.com/bar/login?user=u123&password=123456 - войти в панель приложения

В этом случае вам нужен только один сервер (веб-сервер), который прослушивает сокет (порт 80). Ваша реализация на стороне сервера может быть выполнена с использованием различных веб-технологий (php, java, asp.net и т. Д.) На ваш выбор.

2 голосов
/ 18 января 2011

Технически возможно использовать разные порты, но я не думаю, что такой веб-хостер, как goddaddy, позволит вам запустить процесс Java, который привязывается к специальному порту.

1 голос
/ 18 января 2011

Да, это должно работать. Менеджер безопасности разрешает подключения к другому порту с тем же IP-адресом, с которого был загружен апплет.

0 голосов
/ 19 января 2011

Ваше решение может работать теоретически, и мне нравится решение AlexR. Но провайдеры, такие как godaddy, не позволяют запускать сервер Java на ЛЮБОМ порту. Вам нужно будет найти кого-то, кто делает. Я обнаружил, что стоимость выросла с 5 до 20 долларов в месяц, но вы получаете гораздо лучшую (читай быстрее) машину. Добрые пожелания, - ср.

0 голосов
/ 18 января 2011

Вы можете запустить сервер Java на любом порту, который хотите. Каждый сервер будет принимать входящие запросы на один порт.

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

Ваш хост (GoDaddy) должен будет разрешить вам использовать эти порты, но если они предоставляют надлежащий хостинг (не виртуальный хостинг) и предоставляют вам свой собственный IP, нет причины, по которой вы не сможете этого сделать.

...