Java網絡編程從入門到精通(28):獲取ServerSocket信息的方法及FTP原理 – JAVA編程語言程序開發技術文章

與ServerSocket對象相關的信息有兩個:綁定端口和綁定IP地址。綁定端口可以通過getLocalPort方法獲得。綁定IP地址可以通過getInetAddress方法獲得。


一、getLocalPort方法


getLocalPort方法的返回值可分為以下三種情況:


1.       ServerSocket對象未綁定端口,getLocalPort方法的返回值為-1。


2.       ServerSocket對象綁定瞭一個固定的端口,getLocalPort方法返回這個固定端口。


3. ServerSocket對象的綁定端口為0,getLocalPort方法返回一個隨機的端口(這類端口被稱為匿名端口)。


getLocalPort方法的定義如下:


<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>public int getLocalPort()

getLocalPort方法主要是為這些匿名端口而準備的。下面的代碼演示瞭ServerSocket對象產生隨機端口的過程:


<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>package server;

import java.net.*;

public class RandomPort
{
    public static void main(String[] args) throws Exception
    {
        for (int i = 1; i <= 5; i++)
        {
            System.out.print(“Random Port” + i + “:”);
            System.out.println(new ServerSocket(0).getLocalPort());
        }
    }
}

運行結果:

<!–{cps..13}

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>Random Port1:1397
Random Port2:1398
Random Port3:1399
Random Port4:1400
Random Port5:1401

在大多數時候ServerSocket對象都會綁定一個固定的端口。但有時客戶端隻需要和服務端進行短暫的連接,這時就可以使用匿名端口。如我們經常用的FTP服務就是如此。

<p style="

發佈留言