2013-08-15 4 views
0

Я просто сделал небольшую чат-программу с сервером и клиентом в java. Клиент должен подключиться к серверу с IP-сервером. Все мои тесты я сделал с localhost (127.0.0.1), и все прошло хорошо, но когда я тестировал его позже с моим другом, я должен был заметить, что если я поставлю свой ip-адрес (я запустил сервер, он запускает клиент), что он не работает. Есть ли способ настроить частный небольшой сервер на моем компьютере, чтобы запустить мой сервер, или, возможно, другой способ заставить его работать?Использовать локальный компьютер как сервер

EDIT:

Просто нашел инструмент под названием «Apache», чтобы создать свой собственный сервер, может это может быть полезно?

EDIT: Когда я говорю, что не работает, я имею в виду я получаю IOException, потому что это не поможет:

public void connectToServer() throws IOException{ 

    showMessage("Attemption to connect..."); 
    connection = new Socket(InetAddress.getByName(serverIP), 6789); 
    showMessage("\nConnected to: " + connection.getInetAddress().getHostName()); 
} 
+0

Когда вы говорите, t работа, что вы имеете в виду? Вы получили сообщение об ошибке? Если да, то добавьте стек. Правильно ли ваш знакомый использует ваш общедоступный IP-адрес? Вы знаете, что 127.0.0.1 не является вашим фактическим IP, не так ли? –

+0

Убедитесь, что вы запустили свой сервер с 0.0.0.0, а не 127.0.0.1 – KevinDTimm

+0

Я начинаю с диалогового окна ввода, запрашивающего ip для соединения с :) –

ответ

1

Существует целый ряд вещей, которые вы должны смотреть на, прежде чем ваше приложение будет работать.

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

В начале, посмотрите, можете ли вы пинговать IP-адреса друг друга и взять его оттуда.

+0

Если честно, я думаю, что все сообщение отсюда до того, , Брандмауэр на обоих концах был отключен во время тестирования, а также антивирус. Я немного поработал с Google, и я обнаружил, что, как только клиент попросит подключиться к моему rounter через мой ip, мой rounter не знает, что с ним делать, поскольку он на сервере, его единственная локальная сеть. Вот почему я спросил, есть ли способ настроить такой сервер. –

1

Я рекомендую сначала попробовать и отключить брандмауэр. Если вы используете окна, вот инструкция по отключению брандмауэра Windows: Turn Windows Firewall on or off

Если вы тестируете кого-то вне вашей локальной сети, вам может потребоваться настроить NAT на маршрутизаторе лица, на котором размещен сервер. Вы можете получить доступ к маршрутизатору, набрав его локальный IP-адрес в веб-браузере. Обычно это что-то вроде 192.168.1.1 или 192.168.1.254, но это будет зависеть от модели и настройки сети.

Как только вы подключились, вы должны найти опцию (обычно в расширенном режиме) для «NAT» или «Port Forwarding». Я предлагаю вам выполнить поиск в Google с помощью модели маршрутизатора и как настроить перенаправление портов.

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

+0

О, о чём-то еще не сказано о NAT, очень хорошо, я попробую. –

+0

Без проблем, пожалуйста, сообщите нам, если это ответит на ваш вопрос. –

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