java seek指針 換行符_Java網絡編程探究|樂字節

大家好,我是樂字節小樂,上次給大家講述了Java中的IO流之輸出流|樂字節,本文將會給大家講述網絡編程。

主要內容如下:

  • 網絡
  • 網絡分層
  • IP位置
  • 端口port
  • 網絡編程

7883a26702d1b07953e729cf5cd710a4.png

一、 網絡

1、概念

網絡即將不同區域的電腦連接到一起, 組成局域網、城域網或廣域網。把分布在不同地理區域的計算機與專門的外部設備用通信線路互連成一個規模大、功能強的網絡系統,從而使眾多的計算機可以方便地互相傳遞信息,共享硬件、軟件、數據信息等資源。

cb8a3b92a9243e47391d161518cabb1e.png

2、主要功能


? 資源共享
? 信息傳輸與集中處理
? 均衡負荷與分布處理

3、網絡通信協議

計算機網絡中實現通信必須有一些約定即通信協議,對速率、傳輸代碼、代碼結構、傳

輸控制步驟、出錯控制等制定標準。

4、網絡通信接口

為了使兩個結點之間能進行對話,必須在它們之間建立通信工具(即接口),使彼此之間能進行信息交換。接口包括兩部分:

? 硬件裝置: 實現結點之間的信息傳送;
? 軟件裝置: 規定雙方進行通信的約定協議

二、 網絡分層

由于結點之間聯系很復雜,在制定協議時,把復雜成份分解成 一些簡單的成份,再將它們復合起來。最常用的復合方式是層次方式,即同層間可以通信、上一層可以調用下一層,而與再下一層不發生關系。

1、 通信協議的分層

64df8c305c1b6c09a203cf8a84ac9f8e.png

2、封裝

封裝:從上往下,加入相關層的協議控制信息

b38a5f9615f67dca34b86c4a9e452217.png

3、拆封

拆封:獲取數據,從下往上,去除相關層的協議的控制信息

63c77c052343d9ad1290a71661782d48.png

三、 IP位置


( IP) 是 Internet Protocol 的外語縮寫, 網絡之間互連的協議也就是為計算機網絡相互連接進行通信而設計的協議。 在因特網中,它是能使連接到網上的所有計算機網絡實現相互通信的一套規則,規定了計算機在因特網上進行通信時應當遵守的規則。任何廠家生產的計算機系統,只要遵守 IP 協議就可以與因特網互連互通。


端口:區分數據流向的軟件 0-65535 不要使用 1024 以下的端口 ,每一個協議擁有自己的端口,在同一個協議下端口不能重復 FTP:21 HTTP:80

四、端口:port


端口是虛擬的概念,并不是說在主機上真的有若干個端口。通過端口,可以在一個主機上運行多個網絡應用程序。可以類比為:IP 相當于公司,端口相當于公司各部門,URL,相當于各部門的人員。

五、資源的傳輸協議


TCP:TCP(transfer control protocol) 打電話 面向連接、安全、可靠,效率低
UDP:UDP(UserDatagramProtocol ) 發送短信 非面向連接、不安全、數據可能丟失 、效率高

六、網絡編程

1、InetAddress
封裝計算機的 ip 地址和 DNS( Domain Name System,域名系統) ,沒有端口。
1)、方法
InetAddress.getLocalHost();
InetAddress.getByName("http://www.163.com");
InetAddress.getByName("223.87.1.58")


2) 、方法
getHostAddress() 返回 ip 地址
getHostName() 返回域名|本機為計算機名

2、InetSocketAddress
包含端口,用于 socket 通信的
1) 、獲取對象
InetSocketAddress(String hostname, int port)
InetSocketAddress(InetAddress addr, int port)


2) 、方法
getAddress() 返回 InetAddress 對象
getPort() 返回端口
getHostName() 返回域名

3 、URL
1) 、URI(Uniform resource identifier)
統一資源標識符, 用來唯一的標識一個資源。


2) 、URL( Uniform Resource Locator)
統一資源定位器,它是一種具體的 URI 。統一資源定位符,由 4 部分組成:協議 、存
放資源的主機域名、資源文件名和端口號。 URL是指向互聯網“資源”的指針。資源可以是簡單的文件或目錄,也可以是對更為復雜的對象的引用,例如對數據庫或搜索引擎的查詢。


3) 、網絡爬蟲原理

public static void main(String[] args) throws IOException {URL url=new URL("http://www.baidu.com");//主頁	默認資源
//獲取資源    網絡流      可能會出現亂碼:1、字節數不夠	2、編碼解碼格式不統一/*InputStream is=url.openStream();byte[]flush=new byte[1024];int len=0;while(-1!=(len=is.read(flush))){System.out.println(new String(flush,0,len));}is.close();*/BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu2.html"),"utf-8"));String msg=null;while((msg=br.readLine())!=null){//將網絡內容下載到本地。然后進行數據分析,建立索引,這也是搜索引擎的第一步。bw.append(msg);bw.newLine();//新增方法	插入換行符}bw.flush();//強制刷出bw.close();br.close();}

4、UDP編程: DatagramSocket DatagramPacket

UserDatagramProtocol,一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務。其特點為:非面向連接;傳輸不可靠;數據可能丟失。

9c17b5c296999635c4109de61ea7fb0c.png

1)、服務器:
①創建服務器 DatagramSocket類 +指定端口
②準備接收容器 字節數組 +封裝成DatagramPacket數據包
③接收數據
④分析數據
⑤釋放資源

2)、客戶端:
①創建客戶端 DatagramSocket類 +指定端口
②準備數據 字節數組
③封裝成數據包 需要指定包發送的地址+端口 即服務器地與端口
④發送數據
⑤釋放資源

5、TCP 編程:ServerSocket Socket

transfer control protocol,一種面向連接(連接導向)的、可靠的、基于字節流的傳輸層(Transport layer)通信協議的點到點的通信 。TCP 三次握手(Three-way Handshake),類似于撥打電話

1) 、特點

基于 tcp 協議,建立穩定連接的點對點的通信;實時、快速、安全性高、占用系統資源多、效率低;“請求-響應”模式:

a)、客戶端:在網絡通訊中,第一次主動發起通訊的程序被稱作客戶端(Client)程序

b)、服務器:第一次通訊中等待連接的程序被稱作服務器端(Server)程序

? Socket:發送 TCP 消息

? ServerSocket:創建服務器

套接字是一種進程間的數據交換機制。這些進程既可以在同一機器上,也可以在通過網

絡連接的不同機器上。換句話說,套接字起到通信端點的作用。單個套接字是一個端點,

而一對套接字則構成一個雙向通信信道,使非關聯進程可以在本地或通過網絡進行數據

交換。一旦建立套接字連接,數據即可在相同或不同的系統中雙向或單向發送,直到其

中一個端點關閉連接

2) 、服務器:

①創建服務器 指定端口

②等待客戶端連接

③分析接收數據

3) 、客戶端:

①連接服務器: 創建客戶端 +指定服務器地址 +端口

②發送數據

樂字節原創,轉載請注明出處。

關于網絡編程就講到這里了,更多Java干貨請繼續關注樂字節。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532155.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532155.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532155.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

switch 條件判斷_C語言學習第7篇---C語言三大結構之一判斷結構

if語句分析1.if語句用于根據條件選擇執行語句2.else不能獨立存在且總是與它最近的if想匹配3.else語句后可以接其他if語句if語句中零值比較的注意點---bool型變量應該直接出現在條件中,不要進行比較---變量和0值進行比較時,0值應該出現在比較符合左邊---f…

計算機應用基礎授課提綱,《計算機應用基礎》講授提綱(1).ppt

《計算機應用基礎》講授提綱(1).ppt (49頁)本資源提供全文預覽,點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧,查找使用更方便哦!14.9 積分*第四講 Windows基礎基本操作文件操作控制面板中文操作處理磁盤管理命令提示符*Windows 基本操作桌…

工業機器人演示碼垛和卸垛_眾多企業購買自動碼垛機的原因是什么?

企業為什么要購買自動碼垛機呢?難道僅僅是因為它可以自動,讓工作變得輕松簡單嗎?當然不是,如果自動碼垛機僅僅能夠為企業帶來這么點的好處的話,相信是沒有企業愿意花大價錢來購買這些自動碼垛機的,那么企業究竟是看中了自動碼垛…

python 100days github_GitHub - rghwer/Python-100-Days: Python - 100天從新手到大師

Python - 100天從新手到大師 作者:駱昊 最近有很多想學習Python的小伙伴陸陸續續加入我們的交流群,目前我們的交流群人數已經超過一萬人,光靠我自己已經無法及時處理小伙伴們的入群申請,更無法及時為大家解答問題。目前我的想法是…

python期末項目書怎么寫_自己寫了一部書怎么出版

一部書從無到有,包括編寫和出版。編寫可以自己寫,但出版的問題,得靠規定的出版途徑來解決。那么,自己寫了一部書怎么出版?通常包括兩種方法:找出版社直接合作公費出版和找出版公司合作自費出版。自己寫了一部書怎么出…

去哪里找與計算機相關的外文,找計算機相關的外文翻譯

2019-05-18 回答人品爆發,閑著也是閑著,我給你翻譯好了樓主。你看一下。lets start off this chapter by defining the term web application. weve all seen regularclient-side applications, but what exactly is a web application? loosely, it ca…

分頁請求json數據_Python爬蟲入門教程 28-100 虎嗅網文章數據抓取 pyspider

1. 虎嗅網文章數據----寫在前面 今天繼續使用pyspider爬取數據,很不幸,虎嗅資訊網被我選中了,網址為 https://www.huxiu.com/ 爬的就是它的資訊頻道,本文章僅供學習交流使用,切勿用作其他用途。常規操作,分…

bootstrap 導航菜單 折疊位置_教大家如何編寫一個網頁導航條

導航條簡單地說就是對你整個網站模塊的簡單介紹,你可以直接點擊導航條某一個按鈕或板塊便可進入其相應的界面,如:網頁、新聞、貼吧等 。在企業網站上,導航條上常見的有:產品介紹,公司簡介,最新產…

福建省高等學校非計算機考試大綱,福建省高等學校計算機應用水平等級考試三級(偏軟)考試大綱...

福建省高等學校計算機應用水平等級考試三級(偏軟)考試大綱2007年04月13日 星期五 9:55I、考試目的本考試考查考生以下知識與能力:1.具有較寬的計算機系統基礎知識;2.掌握數據結構的基本類型、典型算法及其應用;3&#…

python擬合函數_Python-最小二乘法曲線擬合

行文思路:最小二乘法原理介紹 利用 leastsq() 函數進行最小二乘法擬合 擬合注意事項 利用curve_fit 進行最小二乘法擬合 總結: 參考文獻 實現代碼 一,最小二乘法擬合 最小二乘法是一種數學優化技術,它通過最小化誤差的平方和尋找數…

計算機網絡提高網絡安全意識,提升網絡安全意識 共創清朗網絡環境

為增強公眾網絡安全意識,提高網絡安全防護技能。近期,徐家營街道圍繞“網絡安全為人民、網絡安全靠人民”活動主題,組織開展了“2020國家網絡安全宣傳周”活動,保障用戶合法權益,維護國家網絡安全。一、廣泛宣傳引導。…

base cap 分布式_干貨分享:基于本地消息表的分布式事務解決方案總結

前段時間學習了分布式事務的幾種方案,下面主要總結下基于本地消息表實現可靠消息最終一致性的分布式事務方案。1,什么是分布式事務?在傳統架構中往往是一個單體架構,一個系統就對應一個war包,然后這個系統也只有一個數…

google protobuf_protobuf 指南

簡介安裝語言定義特殊指令定義服務JSON 支持選項生成代碼基礎類型更新 messageGolang 下使用參考簡介Protocol Buffers 是 google 出品的一種數據交換格式, 縮寫為 protobuf.主要介紹 proto3 版本和 Golang 下的使用.安裝protobuf 分為編譯器和運行時兩部分. 編譯器直接使用預編…

計算機無法裝補丁,電腦無法安裝kb4012212補丁如何處理|電腦無法安裝kb4012212補丁的處理方法...

最近,不少用戶的電腦都被《永恒之藍》病毒侵襲,因此微軟官方推出了預防補丁 — kb4012212,正常系統只要安裝該補丁就能避免電腦遭到傷害。不過,有用戶反饋自己遇到了電腦無法安裝kb4012212補丁的情況,該怎么辦呢&#…

shell181網格劃分_ANSYS中SHELL181單元理解和參數詳解?-

頂部和底部的平均值不合適的時候,你應該用這個選項來得到正確的中見面的結果(薄膜結果);例子中包含黑線性材料特性的中間面應力、應變 ,以及在包含諸如譜分析等測長操作的模態疊加之后的中間面結果。 KEYOPT(9) 1 用來從用戶子程序中讀取初始厚度數據。…

使用計算機繪制景物圖像的兩個主要步驟是,計算機11考試.doc

文檔介紹:第五章[4]. 一張CD盤片上存儲的立體聲高保真全頻帶數字音樂約可播放一小時,則其數據量大約是______。A、800MBB、635MBC、400MBD、1GB[6]. 衛星數字電視和新一代數字視盤DVD采用______作為數字視頻壓縮標準。MPEG-2 | MPEG2[10]. 聲卡在計算機中用于完成聲…

mysql在哪里寫代碼_[譯] 如何寫好 Go 代碼

原文:https://scene-si.org/2018/07/24/writing-great-go-code/我寫了多年的 Go 微服務,并在寫完兩本關于 (API Foundations in Go 和 12 Factor Applications with Docker and Go) 主題的書之后,有了一些關于如何寫好 Go 代碼的想法但首先&a…

學畫畫軟件app推薦_路由器管理軟件哪個好?6款路由器管理APP推薦_軟件評測

無限網絡應用越來越廣泛,由此應運而生了許多可以蹭網的軟件,家里的網速突然變慢了,也許就是隔壁的小哥哥小姐姐在蹭網絡,那么如何避免被蹭網?今天小編給各位小伙伴推薦幾款路由器管理軟件,發現網絡變慢了&a…

408計算機考研 各科題目題號,2021考研408計算機專業基礎綜合數據結構試題特點分析...

2021考研408計算機專業基礎綜合數據結構試題特點分析2021考研初試結束后,新東方在線考研網為各位考研考生梳理"2021考研408計算機專業基礎綜合數據結構試題特點分析"內容,同時新東方在線考研各研究院院長針對2021考研各科目試題變化及難度進行…

各個圖標的意思_冬奧體育圖標設計團隊負責人林存真:每一個圖標要畫100稿以上...

林存真中央美術學院設計學院副院長、北京冬奧組委文化活動部形象景觀藝術總監、北京冬奧會體育圖標設計團隊負責人。12月31日晚,北京2022年冬奧會和冬殘奧會體育圖標正式發布。在體育圖標發布前夕,新京報記者采訪了北京冬奧會體育圖標設計團隊的負責人&a…