getHostAddress() и getInetAddress() в Java

#java #sockets

#java #сокеты

Вопрос:

Я создаю приложение TCP-сокета. На стороне сервера,

 ss = new ServerSocket(10000);
Socket socket = ss.accept();
String remoteIp = socket.getInetAddress().getHostAddress();
String RemotePort = ":" socket.getLocalPort();
  

Меня немного смущают последние две строки, getInetAddress() используется для возврата адреса сокета, к которому подключается, а именно является ли это адресом хоста? и тогда зачем нам нужен getHostAddress()?

Ответ №1:

socket.getInetAddress() возвращает InetAddress объект, который содержит IP-адрес удаленной машины.

InetAddress.getHostAddress() возвращает String объект с текстовым представлением этого адреса.

Итак, чтобы в итоге получить String , вы можете печатать, вот как вы это делаете.

Редактировать: На случай, если вы не знакомы, это называется «цепочка методов». Это то же самое, что сказать:

 InetAddress addy = socket.getInetAddress();
String remoteIp = addy.getHostAddress();
  

Ответ №2:

В дополнение к ответу Брайана Роучса:

Вы также можете заглянуть в Java API, чтобы найти описание классов, методов и полей: