getRemoteSocketAddress возвращает URL-адрес и IP-адрес вместе - PullRequest
0 голосов
/ 24 марта 2019

Я создаю http-клиент, используя сокет. getInetAddress и getRemoteSocketAddress оба возвращают URL-адрес и IP-адрес вместе. Как я могу опустить URL или IP-адрес, чтобы получить только один из них?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;

public class socketv1 {
    public static void main(String[] args) throws Exception {
        InetAddress addr = InetAddress.getByName("www.google.com");
        Socket socket = new Socket(addr, 80);
        boolean autoflush = true;

        System.out.println("URL requested: " + socket.getInetAddress());
        System.out.println("Client: " + socket.getLocalAddress() + " " + socket.getLocalPort());
        System.out.println("Server: " + socket.getRemoteSocketAddress() + " " + socket.getPort());


        PrintWriter out = new PrintWriter(socket.getOutputStream(), autoflush);
        BufferedReader in = new BufferedReader(

                new InputStreamReader(socket.getInputStream()));

        // send an HTTP request to the web server
        out.println("GET / HTTP/1.1");
        out.println("Host: www.google.com:80");
        out.println("Connection: Close");
        out.println();

        // read the response
        boolean loop = true;
        StringBuilder sb = new StringBuilder(8096);
        while (loop) {
            if (in.ready()) {
                int i = 0;
                while (i != -1) {
                    i = in.read();
                    sb.append((char) i);
                }
                loop = false;
            }
        }
        System.out.println(sb.toString());
        socket.close();
    }
}

Ожидаемое:

Запрошенный URL: www.google.com

Клиент: 192.168.1.110 56495

Сервер: 216.58.196.132 80

Фактический:

Запрошенный URL: www.google.com/216.58.196.132

Клиент: /192.168.1.110 56495

Сервер: www.google.com/216.58.196.132:80 80

1 Ответ

0 голосов
/ 24 марта 2019
System.out.println("URL requested: " + socket.getInetAddress().getHostName());
System.out.println("Client: " + socket.getLocalAddress().getHostAddress() + " " + socket.getLocalPort());
System.out.println("Server: " + socket.getInetAddress().getHostAddress() + " " + socket.getPort());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...