Java 是現代網絡編程中使用的主要編程語言之一。網絡編程支持不僅是指提供 API 以在兩臺或多臺遠程計算機之間建立通信,而且還提供所有必要的手段,即使是新手程序員也可以輕松訪問網絡資源。 想了解有關java更多詳細信息,建議參加Java培訓,通過系統全面的學習,可以快速提升自己。
Java 中有一個專門用于此原因的完整包,稱為 java.net 包。到目前為止,網絡是一個龐大而復雜的主題,但在本文中,我們將嘗試從 Java API 的角度探索網絡編程的一些關鍵點。
網絡概述
套接字的概念構成了現代網絡編程的基礎,它指的是網絡中兩臺計算機之間的通信端點。套接字編程使我們能夠一次在多個客戶端之間建立通信,通信的信息類型也根據與套接字一起使用的端口號而有所不同。因此,一臺計算機不僅可以與多個客戶端進行通信,還可以與多種類型的信息進行通信。
在網絡傳輸過程中,數據被分成更小的塊,稱為數據包,然后通過網絡發送到一個地址。這種通信的規范稱為路由協議。網際協議(IP)是一種將信息傳輸到目標地址但不保證所述數據包將被傳遞的低級協議。這意味著根據該協議的通信被標記為不可靠。還有另一種稱為傳輸控制協議 (TCP) 的協議,它是一種高級協議,它通過對未傳遞的數據包進行分類和重新傳輸到目標地址來以可靠的方式管理數據包的傳輸。
因此,該協議稱為 TCP/IP。該協議預留了1024個端口,用于確定一些高階協議。為了消除混淆,請注意這些特定協議決定了傳輸信息的類型,而低級協議 (TCP/IP) 只關心如何通過將信息調整為稱為數據包的更小塊來傳輸數據的機制,而無需關心它包含的信息類型。在java培訓中,有系統全面的理論知識和企業級實戰項目,可以讓你真正掌握java知識和技能,更好地進行項目開發。
我們熟悉其中許多特定協議。通常,特定的端口號由特定的協議標識。但是,出于安全原因,服務器管理員可能會覆蓋此設置。但是,一般來說,它們與端口號關聯如下:文件傳輸協議或 FTP (21)、Telnet (23)、簡單郵件傳輸協議或 SMTP (25)、whois (43)、超文本傳輸協議或 HTTP ( 80) 等等。在特定端口中接收到的通信決定了客戶端將如何與接收到的數據進行交互。例如,在端口 80 (HTTP) 中接收到的數據意味著只有瀏覽器才能理解;這意味著它包含超文本頁面和圖像。
最后,網絡通信的關鍵組成部分是計算機本身的地址,稱為 IP(Internet 協議)地址。網絡中的每臺計算機都必須有一臺。 IPv4(IP 地址版本 4)地址是一個 32 位值,組織為四個 8 位值塊。 IP 地址的另一個最新發展是 IPv6(版本 6),它使用 8 個 16 位塊中的 128 位值來表示一個地址。一個比另一個有幾個優點和缺點,但是在編程時,我們不必過多關注它們,因為它是由 Java 自動處理的。
Java中的網絡
Java 支持 TCP 和 UDP 協議,其中 TCP 用于跨網絡的可靠的面向連接、基于流的 I/O,而 UDP 用于快速、不可靠的點對點數據報連接。與 UDP 相關的標簽“不可靠性”有點輕描淡寫。在實踐中,通過 UDP 傳輸數據是相當可靠的,只有在通信高度強調絕對可靠性時才應該放棄使用這種模型。除此之外,UDP 在大多數情況下都非常有效,應出于所有實際原因使用。在java培訓中,培訓課程實時更新,緊跟市場和企業需求,讓你掌握最新技術,走在市場前沿。
Java URI 類
Java 有另一個類,稱為 URI(統一資源標識符)。 URI 是標識資源的標準方法。它類似于 URL 類;實際上,URL 是 URI 類的一個子集。從概念上講,除了標識 URI 所用的資源之外,URL 還使我們能夠定位資源。這意味著所有的 URL 都是 URI,但反之則不然。因此,有了這個想法,在 Java 中選擇合適的類是不是很困難?無法決定選擇什么 - URI 或 URL?沒有更多的困惑。
Java 提供了諸如 HttpCookie、CookieManager、CookieHandler 之類的類,以及諸如 CookiePolicy 和 CookieStore 之類的接口來處理有狀態的 HTTP 會話,所有這些都在 java.net 包中。這些類在我們通常創建 HTTP 會話的 Servlet 和 JSP 工作時非常方便。
在 Java 中創建 TCP 客戶端和服務器
在 Internet 上的主機之間創建雙向、可靠、點對點、基于流的連接的最簡單方法是實現 TCP 套接字,Java 提供了從頭開始實現的所有必要方法。想學習java的同學建議通過參加java培訓來提升自己,在專業老師的指導下,可以獲得很大進步。
在 Java 中創建 UDP 客戶端和服務器
Java 通過網絡傳輸數據報的方式是通過 UDP 協議。它可以稱為 TCP 網絡上的輕量級數據傳輸,因為 TCP 包含大量開銷來保持傳輸的健全性,例如擁擠網絡的擁塞控制、丟包導致的數據包重傳策略等。這些使其成為維護主機之間連接的繁重且昂貴的方式。從這個意義上說,數據報雖然是一種不可靠的傳輸策略,但它是輕量級的,一旦通過網絡發送,它就不會關心數據包的丟失。有時這種粗心的策略正是我們所需要的,而不是選擇繁重的 TCP 連接。
結論
java.net 包中還有許多其他類。這幾個可能是處理與在 Java 中實現網絡應用程序相關的任何事情的基本類。但是,請注意,開發人員的真正優勢在于其將網絡作為一門學科的概念基礎,而不是任何編程語言。話雖如此,值得一提的是,Java 使啟動網絡編程變得容易,即使對于初出茅廬的程序員也是如此。在 Java 誕生之初,人們認為它是一種用于 Internet 編程的語言。這樣的概念當然有一些價值,因為我們可以看到它在這方面提供的 API 支持的擴展。如果你正在考慮如何快速學習java,那么參加java培訓掌握更全面的知識和技能將是一個很好的開始。