简体   繁体   English

getRemoteSocketAddress一起返回url和ip地址

[英]getRemoteSocketAddress return the url and ip address together

I'm creating http client using socket. 我正在使用socket创建http客户端。 getInetAddress and getRemoteSocketAddress both return the url and ip address together. getInetAddress和getRemoteSocketAddress都将url和ip地址一起返回。 How do I omit the url or ip address to get only one of it? 如何省略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();
    }
}

Expected: 预期:

URL requested: www.google.com 请求的网址:www.google.com

Client: 192.168.1.110 56495 客户:192.168.1.110 56495

Server: 216.58.196.132 80 服务器:216.58.196.132 80

Actual: 实际:

URL requested: www.google.com/216.58.196.132 请求的网址:www.google.com/216.58.196.132

Client: /192.168.1.110 56495 客户:/192.168.1.110 56495

Server: www.google.com/216.58.196.132:80 80 服务器:www.google.com/216.58.196.132:80 80

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());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM