首頁技術文章正文

java培訓:ServerSocket的構造方法【詳細講解】

更新時間:2022-07-29 來源:黑馬程序員 瀏覽量:

IT培訓班

在開發(fā)TCP程序時,首先需要創(chuàng)建服務器端程序。JDK的java.net包中提供了一個ServerSocket婁,該類的實例對象可以實現(xiàn)一個服務器端的程序。通過查閱API文檔可知,ServerSocket類提供了多個構造方法,接下來就對ServerSocket的構造方法進行詳細講解。

(1) ServerSocket()

使用該構造方法在創(chuàng)建ServerSocket對象時并沒有指定端口號,因此該對象不監(jiān)聽任何端口,不能直接使用,使用時還需要調(diào)用bind(SocketAddress endpoint)方法將其綁定到指定的端口號上。

(2)ServerSocket(int port)

使用該構造方法在創(chuàng)建ServerSocket對象時,可以將其綁定到指定的端口號上。如果port參數(shù)值為0,此時系統(tǒng)就會分配一個未被其他程序占用的端口號。由于客戶端需要根據(jù)指定的端口號來訪問服務器端程序,因此端口號隨機分配的情況并不常用,通常都會給服務器端指定一個端口號

(3)ServerSocket(int port,int backlog)

該構造方法就是在第2個構造方法的基礎上,增加了一個backlog參數(shù)。該參數(shù)用于指定在服務器忙時,可以與之保持連接請求的等待客戶端數(shù)量,如果沒有指定這個參數(shù),默認為50。

(4)ServerSocket(int port, int backlog, InetAddress bindAddr)

該構造方法就是在第3個構造方法的基礎上,指定了相關的IP地址,這種情況適用于計算機上有多塊網(wǎng)卡和多個IP的情況,使用時可以明確規(guī)定ServerSocket在哪塊網(wǎng)卡或IP地址上等待客戶端的連接請求。顯然,對于一般只有一塊網(wǎng)卡的情況,就不用專門指定該參數(shù)。

在以上介紹的構造方法中,第2個構造方法是最常使用的。了解了如何通過ServerSocket的構造方法創(chuàng)建對象,接下來學習ServerSocket的常用方法,如下表所示。

1659078533377_5.png

ServerSocket對象負責監(jiān)聽某臺客戶端計算機的端口號,在創(chuàng)建ServerSocket對象后,需要繼續(xù)調(diào)用該對象的accept()方法,接收來自客戶端的請求。當執(zhí)行了accept()方法之后,服務器端程序會發(fā)生阻塞,直到客戶端發(fā)出連接請求,accept()方法才會返回一個Scoket對象用于和客戶端實現(xiàn)通信,程序才能繼續(xù)向下執(zhí)行。

分享到:
在線咨詢 我要報名
和我們在線交談!