Java網路編程基礎
計算機唯一標示——ip
我們知道每台計算機都有自己的ip地址,二而且這個ip地址是唯一的(在dos下鍵入ipconfig可以查看本機ip地址)該ip是用來唯一標示計算機的,這樣才可以在網路上找到並訪問該計算機上的資源。
所以ip是網路編程的基礎,在java API中提供了兩個類來標示ip地址 InetAddress、InetSocketAddress
InetAddress類只包含計算機的地址和主機名,InetSocketAddress類另外還標示埠號。
想要了解更多Java知識 加入學習群一四四九零一零七六 可以免費學習java還有大量學習乾貨哦
埠:操作系統提供了66035個埠為外界提供服務,外部網路想要訪問該計算機上的資源必須同過埠上的監聽程序進行處理後才能獲取,(1~1024為系統預留埠不建議使用)
InetAddressDemo
InetSocketAddress
網路資源路徑限定符--URL
URL是網路中資源的唯一標示限定符,每一個url都標示一個資源。該對象一般用於從網路中爬去某些資源,如下一個爬取bing首頁源代碼的demo
URLDemo
網路中的快遞員--數據傳輸協議
有了數據傳輸協議個個計算機上的數據才能在網路中進行傳輸,如我們在瀏覽器中訪問bing的首頁是瀏覽器就需要從bing的伺服器上獲取數據,當我們搜索新聞時瀏覽器又需要將搜索框中我們輸入的內容發送個伺服器,這個數據交換的過程就是使用的TCP協議(http及https都是tcp協議封裝後的結果)。
udp協議
udp協議相對於tcp協議而言,其傳輸速度要快的多,但其不能保證其數據一定能安全到達另一端,有可能出現數據丟失的情況,因為其不需要連接如果找不到另一端來接收就會出現數據丟失的情況,但正是由於去不需要連接所以傳輸速度比TCP協議要快得多!udp協議一般被用於區域網內的屏幕分享和直播平台之類的場景。
java中提供的udp協議的實現類是DataGramSocket類,該類用於發送和接收udp協議的數據,而通過udp協議發送的數據必須要打成數據包(DataGramPacket)才能被DataGramSocket類進行發送
下面來看下DataGramSocket類的一些常用方法和構造,其提供了多個構造的重載來創建該對象,
我們一般用的較多的是只傳入埠號的那個構造,該構是在本機上建立監聽,其它的構造也可以自己制定監聽的地址,而實際上第二個構造和第三個構造本質上也是使用第四個構造來創建的。可以自己翻下源碼。
常用方法:
DataGramPacket類的構造
方法摘要
demo(Server端)
demo(Client端)
效果圖
TCP協議
tcp協議與UDP協議想法它是有鏈接的,TCP協議傳輸協議需要進行三次握手,也就是我們常說的瀏覽器從服務其請求數據所說的三次握手。
java提供的tcp實現類為Socket和ServerSocket顧名思義Socket主要表示客戶端而ServerSocket主要表示服務端。這裡他們的構造和方法就不在介紹了,自己翻API吧(犯懶了,不想寫。。。)這裡直接上一個簡單demo
demo(Client端)
demo(Server端)
demo(ReadMessage )
demo(SendMessage )
效果圖
Server端像Client端發送數據
TCP協議與HTTP(/HTTPS)協議的區別
很多人都分不清這兩者之間的區別,前邊兒也已經說了Http協議實際上就是對TCP協議的封裝,我們正常的TCP兩鏈接中攜帶的數據時很廣泛的且沒有固定的格式,瀏覽器沒辦法進行通用的解析(瀏覽器實際上就是一個Socket客戶端)。也就是說一個每個瀏覽器都有自己解析數據的方式且相互之間並不統一,從而導致了互聯網一直停滯不前,所以就有了http協議的誕生,http協議封裝了TCP協議。簡單的說也就是:TCP協議規定了數據的傳輸方式,而http協議規定了連接中數據的格式。
想要了解更多Java知識 加入學習群一四四九零一零七六 可以免費學習java還有大量學習乾貨哦
※為什麼越來越多的人選擇Java?
※2017年最重要的HTML5開發手冊,傳播正能量
※c語言中那些被忽略的知識點,但效果奇佳,肯定也有你忽略的
※HTML CSS十條網頁設計中實用的技巧
※程序員們最易犯的10種錯誤
TAG:IT技術java交流 |
※Python 網路編程基礎入門
※Python網路編程——進程
※Shell編程基礎
※Python之網路編程
※Python學習之網路編程
※網路編程-arp協議
※Redis 編程
※C語言/C加加編程嵌入式基礎學習之volatile關鍵字
※Perl 編程
※Kotlin 編程
※XPath 編程
※Firebug編程
※Ian Goodfellow 最新論文:對抗重編程成功干擾神經網路執行任務
※android 多線程編程
※ionic 編程
※DeepMind新研究:可微歸納邏輯編程,融匯神經網路與邏輯編程之長(下)
※《Python神經網路編程》業界良心書
※深入Python多進程編程基礎
※Eclipse 編程
※ionic 編程Range