Java 有没有办法在HttpsUrlConnection中找到端口号?

Java 有没有办法在HttpsUrlConnection中找到端口号?,java,networking,Java,Networking,我创建了一个应用程序,可以从远程服务器下载数据。我使用了HttpsUrlConnection类来执行此操作。正在成功下载数据。但是我想知道,通信是通过哪个端口进行的(我的机器的端口号和远程机器的端口号)。谁能帮我查一下端口号吗?提前感谢。只要远程主机的端口号是您在url中指定的端口号。如果由于任何原因无法使用,您可以通过从连接获取URL对象,然后从URL对象获取端口来获取: int port = connection.getURL().getPort(); 当您的本地机器使用哪个端口进行连接时

我创建了一个应用程序,可以从远程服务器下载数据。我使用了HttpsUrlConnection类来执行此操作。正在成功下载数据。但是我想知道,通信是通过哪个端口进行的(我的机器的端口号和远程机器的端口号)。谁能帮我查一下端口号吗?提前感谢。

只要远程主机的端口号是您在url中指定的端口号。如果由于任何原因无法使用,您可以通过从连接获取URL对象,然后从URL对象获取端口来获取:

int port = connection.getURL().getPort();

当您的本地机器使用哪个端口进行连接时,我不确定java是否支持。您可以使用
netstat
列出许多操作系统中的活动连接。语法可能因操作系统(,)而异。

connection.getURL().getPort()返回-1,因为我在URL中没有提到任何端口号。但根据假设,我可以说HTTPS将使用其默认端口443。有可能证明它吗?有趣的是,我不知道它会返回-1。如果尚未提供端口,则https的默认值为443。Java不会神奇地将其更改为另一个端口,因此我认为您不需要太多证据,除非您对它有特殊要求。你需要在哪里证明?在Java代码或其他地方?我需要获取端口号,并且必须在Java代码中使用它。我们可以说HTTPS通信发生在端口443。但是,有没有任何方法可以通过使用java中的任何方法来获得它呢?根据javadoc,getPort返回“端口号,如果端口未设置,则返回-1”。这意味着,如果您明确设置了端口号,它应该返回正确的端口号。如果尚未设置,则使用默认端口443。因此,每当您为https连接返回-1值时,连接使用的端口是443。您可能还需要查看URL中的getDefaultPort():“获取与此URL关联的协议的默认端口号。”