Клиентский сервер Java TCP, работающий по локальной сети с переадресацией портов, но не с hamachi
У меня есть базовая Java-программа TCP Client Server, которая может подключаться через локальную сеть, а также, когда я использую свой публичный IP с переадресацией портов.
Что меня беспокоит, так это то, что он не работает, когда я пытаюсь использовать одну и ту же программу внутри сети Hamachi VPN. Я хочу, чтобы он там тоже работал, так как многие люди стараются избегать переадресации портов, но используют хамачи, поскольку им это кажется проще.
Код сервера ss = новый ServerSocket(4444); Клиент c = ss.accept ();
Client Code Socket client = новый сокет (, 4444); printWriter = new PrintWriter( new OutputStreamWriter( client.getOutputStream()));
Я погуглил и не смог найти никакой информации об этой проблеме, так как обычные люди спрашивают, как избежать переадресации портов, и им говорят, например, использовать hamachi или узнают, как переадресовывать их порты.
Заранее спасибо!
2 ответа
Ошибка была в том, что другая часть программы закрыла некоторые потоки, и, как при закрытии Java, один инкапсулированный поток закрывает все, что находится под ним.
Может ли Хамачи на самом деле блокировать порт? Мне нравится использовать ncat и nmap для проверки этих вещей.
"ncat -l portNumber" запустит сервер, прослушивающий portNumber
"nmap -Pn -p1234 someHost" увидит, открыт ли порт 1234 на someHost (без проверки связи, чтобы определить, работает ли хост первым)
Настройте вышеуказанное с вашим сервером и клиентом, попробуйте его для своего порта 4444 и попробуйте его с некоторыми портами, которые никто не блокирует, например, 80 или 443. Если это работает для этих обычных портов, но не для 4444, то что-то (hamachi?) Блокирует этот порт.