4

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クラスのjavadoc

「ポートがURLで指定されていない場合、代わりにプロトコルのデフォルトポートが使用されます。httpのデフォルトポートは80です。」

次に、上記の場合、80のデフォルトポートを返す必要があります。ではない ?そうではありません。では、接続に使用されているポートをどのように知ることができますか?

4

4 に答える 4

3

この例を参照して、それぞれのサービスのデフォルトポートを示します。ここに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();
        }

    }

}
于 2012-07-05T07:35:11.123 に答える
1

デフォルトのポットを取得するには、java.net.URLクラスgetDefaultPort()内にメソッドがあります

これを使って

int port  = new URL("http://www.ietf.org/rfc/rfc2396.txt").getDefaultPort();
于 2012-07-05T06:39:52.190 に答える
0

あなたが欲しいurl.getDefaultPort()

于 2012-07-05T06:31:43.517 に答える
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)
于 2012-07-05T06:59:19.873 に答える