更新時間:2022-08-26 來源:黑馬程序員 瀏覽量:
ServerSocket對象可以實現(xiàn)服務端程序,但只實現(xiàn)服務器端程序還不能完成通信,此時還需要一個客戶端程序與之交互,為此JDK提供了一個Socket類,用于實現(xiàn)TCP客戶端程序。通過查閱API文檔可知Socket類同樣提供了多個構造方法,接下來就對Socket的常用構造方法進行講解。
(1) Socket()
使用該構造方法在創(chuàng)建Socket對象時,并沒有指定IP地址和端口號,也就意味著只創(chuàng)建了客戶端對象,并沒有去連接任何服務器。通過該構造方法創(chuàng)建對象后還需調(diào)用connect(SocketAddress endpoint)方法,才能完成與指定服務器端的連接,其中參數(shù)endpoint用于封裝IP地址和端口號。
(2) Socket(String host,int port)
使用該構造方法在創(chuàng)建Socket對象時,會根據(jù)參數(shù)去連接在指定地址和端口上運行的服務器程序,其中參數(shù)host接收的是一個字符串類型的IP地址。。
(3) Socket(InetAddress address, int port)
該方法在使用上與第2個構造方法類似,參數(shù)address用于接收一個InetAddress類型的對象,該對象用于封裝一個IP地址。
在以上Socket的構造方法中,最常用的是第1個構造方法。了解了Socket構造方法的的對象,該對象用于封裝一個IP地址。用法,接下來學習Socket的常用方法,如表11-5所示。
Socket的常用方法

表中列舉了Socket類的常用方法,其中getInputStream()和getOutStream()方法分別用于獲取輸入流和輸出流。當客戶端和服務端建立連接后,數(shù)據(jù)是以I/O流的形式進行交互,從而實現(xiàn)通信的。接下來通過一張圖來描述服務器端和客戶端的數(shù)據(jù)傳輸,如圖所示。

服務器端和客戶端通信圖
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19