我想检查在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。“
然后在上面的情况下它应该返回80默认端口。不是吗? 但事实并非如此。 那么我怎么知道哪个端口用于连接?
答案 0 :(得分:2)
请参阅此示例,为其各自的服务提供默认端口。我在这里显示了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();
}
}
}
答案 1 :(得分:0)
您想要url.getDefaultPort()
。
答案 2 :(得分:0)
要获得默认底池, java.net.URL 类
中有一个方法getDefaultPort()
使用此
int port = new URL("http://www.ietf.org/rfc/rfc2396.txt").getDefaultPort();
答案 3 :(得分:0)
这取决于您发送的请求类型。
不同协议的默认端口不同。
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)