Как подключиться к сокету сервера с другого хоста? - PullRequest
0 голосов
/ 14 марта 2020

Я использую InetAddress addr = InetAddress.getByName("127.0.0.1"); для указания своего имени хоста, а затем я использую тот же номер в своем клиентском коде.

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

Как написать код клиента, чтобы каждый компьютер мог получить доступ и подключиться к коду сервера?

Ответы [ 2 ]

1 голос
/ 15 марта 2020

Я думаю, что это будет работать.

InetAddress addr = InetAddress.getByName("0.0.0.0");

Это свяжет ваш сокет со всеми доступными сетевыми интерфейсами.

Вы можете использовать 127.0.0.1 с вашего хоста и ваш LAN IP из локальной сети.

0 голосов
/ 15 марта 2020

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

Поскольку вы ищете сокет на 127.0.0.1, который является интерфейсом loopback , потому что сервер не работает на другом компьютере. Запустите сервер на другом компьютере, и он должен работать.

Как написать код клиента, чтобы каждый компьютер мог получить доступ и подключиться к коду сервера?

Клиент должен знать IP и порт сервера. Порт IP + составляет сокет сервера. Чтобы соединение работало в сети, сервер должен принимать соединения по сетевому адресу, а не только по локальному хосту. Если клиент подключается к серверу с хоста A, то он будет подключаться с любого хоста B, если B знает, как связаться с сервером, и ничто не блокирует соединение между B и сервером.
Подробнее о сокетах см. В Java здесь .

...