Исключение ввода-вывода клиентской программы Java Server - PullRequest
0 голосов
/ 12 апреля 2010

Я сделал эту программу: http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html

И это прекрасно работает, если я задаю имя хоста сервера как 127.0.0.1 или имя компьютера (Ajay-PC).

Однако эти 2 метода - локальная или локальная, а не интернет. Так что я изменил его на мой интернет-IP. 70.128.xxx.xxx и т. Д. Но это не сработало. Я проверил:

canyouseeme.org

и сказано, что 4444 было ЗАКРЫТО.

Итак, я сделал быстрый порт вперед.

PortForward: Имя: Моя Java-программа Начальный порт: 4444 Конечный порт: 4444 IP-адрес сервера: 10.0.0.12 <- (Да, это мой локальный IP-адрес, который я проверил) </p>

тогда я попробовал canyouseeme.org РАЗ:

и сказано, что 4444 ОТКРЫТО

Я запустил серверную клиентскую программу, и она еще не заработала.

Так что моя проблема в том, что программа клиент-сервер не работает в интернете только локально. Так что что-то блокирует это, и я не знаю что. РЕДАКТИРОВАТЬ: Он не заблокирован, потому что, как я проверял, порт открыт. Но я получаю исключение ввода-вывода, а не UnknownHost

Компьютер: Windows Vista x64 Нортон Антивирус 2010

Спасибо! Я дам лучший ответ или что-нибудь тому, кто когда-либо отвечает лучше;):)

Ответы [ 4 ]

0 голосов
/ 12 апреля 2010

Используйте Wireshark или WinDump для отслеживания начального TCP-рукопожатия . Фильтруйте пакеты с портом 4444. Убедитесь, что открывающий пакет SYN покидает ваш компьютер, что открывающий пакет SYN возвращается на ваш компьютер, и посмотрите, что или как компьютер отвечает на открывающий пакет SYN. ​​

Примечание: если вы поэкспериментируете с этими инструментами, вы не сможете использовать его трассировку, если будете использовать адреса localhost (127.0.0.1) и IP-адрес вашего компьютера (10.0.0.12) - в этих случаях пакеты не на самом деле не оставить компьютер и не может быть снят. Разместите клиент и сервер на отдельных компьютерах, если вы хотите отслеживать пакеты в локальной сети без использования шлюза.

0 голосов
/ 12 апреля 2010

Я предполагаю, что вы находитесь в локальной сети, если вы используете маршрутизатор, подключающийся к вашему модему. И ваш компьютер подключиться к роутеру.

Попробуйте подключиться к модему с IP-адресом в Интернете.

0 голосов
/ 12 апреля 2010

Вы проверили, что клиент подключается к порту 4444 и ваш публичный IP? Это еще одна распространенная ошибка, которую совершает большинство людей. Если ваш порт открыт, как вы сказали выше, и брандмауэр выключен, то ничто не мешает вам подключиться.

0 голосов
/ 12 апреля 2010

Как у вас есть доступ к интернету?Возможно, вам придется настроить свой ADSL-модем или маршрутизатор / коммутатор для переадресации порта 4444 на ваш компьютер.

...