![](/img/trans.png)
[英]Why Java ServerSocket accept() returns a socket with the same port as ServerSocket?
[英]Get address/port of ServerSocket that a Socket is trying to connect to? (Java)
这个我说不好,给你举个例子。 如果我的代码是:
Socket socket = new Socket("1.2.3.4", 80);
然后我运行两种方法,例如:
System.out.println(socket.getAddressOfHost());
System.out.println(socket.getPortOfHost());
我希望它返回:
1.2.3.4
80
这可能吗?这些方法的名称是什么?
Socket
连接到服务器后,可以使用Socket.getInetAddress()
和Socket.getRemoteSocketAddress()
方法检索这些值:
InetAddress addr = socket.getInetAddress();
// InetAddress does not expose port numbers...
System.out.println(addr.getHostAddress());
System.out.println(addr.getHostName());
InetSocketAddress sockaddr = (InetSocketAddress) socket.getRemoteSocketAddress();
InetAddress addr = sockaddr.getAddress();
System.out.println(addr.getHostAddress());
System.out.println(addr.getHostName());
System.out.println(sockaddr.getPort());
有关更多详细信息,请参阅Socket
文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.