[英]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.