教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java網(wǎng)絡(luò)編程:解讀Socket類的構(gòu)造方法和常用方法

更新時間:2022年10月26日10時53分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  在之前的章節(jié)我們講解過ServerSocket對象,它可以實現(xiàn)服務(wù)器端程序,但只實現(xiàn)服務(wù)器端程序還不能完成通信,此時還需要一個客戶端程序與之交互,為此Java提供了一個Socket類,用于實現(xiàn)TCP客戶端程序。通過查閱API文檔可知,Socket類同樣提供了多種構(gòu)造方法。下面對Socket的常用構(gòu)造方法進行詳細講解。

  (1)Socket()

  使用該構(gòu)造方法在創(chuàng)建Socket對象時,并沒有指定IP地址和端口號,也就意味著只創(chuàng)建了客戶端對象,并沒有去連接任何服務(wù)器。通過該構(gòu)造方法創(chuàng)建對象后還需調(diào)用connect(SocketAddress endpoint)方法,才能完成與指定服務(wù)器端的連接,其中參數(shù)endpoint用于封裝IP地址和端口號。

  (2)Socket(String host,int port()

  使用該構(gòu)造方法在創(chuàng)建Socket對象時候,會根據(jù)參數(shù)去連接在指定地址和端口上運行的服務(wù)器程序,其中參數(shù)host接收的是一個字符串類型的IP地址。

  (3)Socket(InetAddress address,int port)

  該構(gòu)造方法在使用上與第二個構(gòu)造方法類似,參數(shù)address用于接收一個InetAddress類型的對象,該對象用于封裝一個IP地址。

  在以上Socket的構(gòu)造方法中,最常用的是第一個構(gòu)造方法。了解了Socket的構(gòu)造方法后,下面學(xué)習(xí)Socket的常用方法,如下所示:

  1.int getPort():該方法返回一個int類型對象,該對象是Socket對象與服務(wù)器端連接的端口號。

  2.InetAddress getLocalAddress():該方法用于獲取Socket對象綁定的本地IP地址,并將IP地址封裝成InetAddress類型的對象返回。

  3.void close():該方法用于關(guān)閉Socket連接,結(jié)束本次通信。在關(guān)閉Socket之前,應(yīng)將與Socket相關(guān)的所有的輸入/輸出流全部關(guān)閉,這是因為一個良好的程序應(yīng)該在執(zhí)行完畢時釋放所有的資源。

  4.InputStream getInputStream():該方法返回一個InputStream類型的輸入流對象,如果該對象是由服務(wù)器端的Socket返回,就用于讀取客戶端發(fā)送的數(shù)據(jù),反之,用于讀取服務(wù)器端發(fā)送的數(shù)據(jù)。

  5.OutputStream getOutputStream():該方法返回一個OutputStream類型的輸出流對象,如果該對象是由服務(wù)器端的Socket返回,就用于向客戶端發(fā)送數(shù)據(jù),反之,用于向服務(wù)器端發(fā)送數(shù)據(jù)。

  在上述所示的方法聲明和功能描述中,getInputStream()和getOutputStream()方法分別用于獲取輸入流和輸出流。當(dāng)客戶端和服務(wù)器端建立連接后,數(shù)據(jù)是以I/O流的形式進行交互的,從而實現(xiàn)通信。下面通過一張圖描述服務(wù)器端和客戶端的數(shù)據(jù)傳輸,如圖9-14所示。

  圖9-14 服務(wù)器端和客戶端的數(shù)據(jù)傳輸

0 分享到:
和我們在線交談!