Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URL构造函数中的端口_Java - Fatal编程技术网

Java 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 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()返回。