Java URL构造函数中的端口
当URL构造函数中没有显式指定端口时,我想检查使用了哪个端口。这是一个代码Java URL构造函数中的端口,java,Java,当URL构造函数中没有显式指定端口时,我想检查使用了哪个端口。这是一个代码 URL url = new URL("http://www.ietf.org/rfc/rfc2396.txt"); System.out.println("URL :"+url.getPort()); getPort()返回-1。它表示我没有设置端口,这就是为什么grtPort()返回了-1值 在java.net.URL类的java文档中 如果URL中未指定端口,则为 改为使用协议。http的默认端口为80。
URL url = new URL("http://www.ietf.org/rfc/rfc2396.txt");
System.out.println("URL :"+url.getPort());
getPort()返回-1。它表示我没有设置端口,这就是为什么grtPort()返回了-1值
在java.net.URL类的java文档中
如果URL中未指定端口,则为
改为使用协议。http的默认端口为80。“
那么在上述情况下,它应该返回80个默认端口。不是吗?
但事实并非如此。
那么,我如何知道连接使用的是哪个端口呢?您想要
url.getDefaultPort()
获取默认端口getDefaultPort()
在java.net.url类中有一个方法getDefaultPort()
用这个
int port = new URL("http://www.ietf.org/rfc/rfc2396.txt").getDefaultPort();
这取决于您发送的请求类型 不同协议的默认端口不同
20 & 21: File Transfer Protocol (FTP)
22: Secure Shell (SSH)
23: Telnet remote login service
25: Simple Mail Transfer Protocol (SMTP)
53: Domain Name System (DNS) service
80: Hypertext Transfer Protocol (HTTP) used in the World Wide Web
110: Post Office Protocol (POP3)
119: Network News Transfer Protocol (NNTP)
143: Internet Message Access Protocol (IMAP)
161: Simple Network Management Protocol (SNMP)
443: HTTP Secure (HTTPS)
请参阅此示例,为其各自的服务提供默认端口。我在这里显示了http和ftp。 例如:
public class Test {
public static void main(String[] args){
try {
System.out.println(new URL("http://www.ietf.org/rfc/rfc2396.txt").getDefaultPort());
System.out.println(new URL("ftp://www.ietf.org/rfc/rfc2396.txt").getDefaultPort());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我猜这里的URL是指URL字符串,而不是
java.net.URL
classsoit,这意味着使用了http端口80。它将由url.getDefaultPort()返回。