最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

學(xué)習(xí)記錄之Java網(wǎng)絡(luò)編程

2022-08-18 00:18 作者:星月襲空  | 我要投稿

java網(wǎng)絡(luò)編程

網(wǎng)絡(luò)編程從大的方面就是說對(duì)信息的發(fā)送接收。

通過操作相應(yīng)API調(diào)度計(jì)算機(jī)資源硬件,并且利用管道(網(wǎng)線)進(jìn)行數(shù)據(jù)交互的過程。

更為具體的涉及:網(wǎng)絡(luò)模型、套接字、數(shù)據(jù)包

基礎(chǔ)層:物理層(physical)、數(shù)據(jù)鏈路層(Datalink)、網(wǎng)絡(luò)層(network).。

傳輸層(Transport):TCP-UDP協(xié)議層、Socket。

高級(jí)層::會(huì)話層(Session)、表示層(Presentation)、應(yīng)用層(Application)

Socket與TCP、UDP?

?Socket: 簡單來說是ip地址與端口的結(jié)合協(xié)議(RFC 793).

? ? ? ? ? ? ? 一種地址與端口的結(jié)合描述協(xié)議。

? ? ? ? ? ? ?TCP/IP協(xié)議的相關(guān)API的總稱;是網(wǎng)絡(luò)API的集合實(shí)現(xiàn).

? ? ? ? ? ? ? 涵蓋了Stream socket /Datagram Socket?

?socket 的組成與作用:

? ? ? ? ? ? ? 在網(wǎng)絡(luò)傳輸中用于唯一標(biāo)識(shí)兩個(gè)端點(diǎn)的鏈接。

? ? ? ? ? ? ? 端點(diǎn):包括(ip+port)

? ? ? ? ? ? ? 4個(gè)要素:客戶端的地址、客戶端的端口、服務(wù)器的地址、服務(wù)器端口。?

6. Socket的傳輸原理

Socket之TCP:

? ? ? ? ?tcp是面向連接的通訊協(xié)議。

? ? ? ? ?通過三次握手建立連接,通訊完成時(shí)要拆除連接。

? ? ? ? ?由于TCP是面向連接的,所以只能用于端到端的通信。

Socket之UDP:

? ? ? ? UDP是面向無連接進(jìn)行通訊的。

? ? ? ? UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息。

? ? ? ? 由于通訊時(shí)是不需要連接,所以可以是實(shí)現(xiàn)廣播發(fā)送,并不局限于端到端。


java.net.Socket

Socket(套接字)封裝了TCP協(xié)議的通訊細(xì)節(jié),是的我們使用它可以與服務(wù)端建立網(wǎng)絡(luò)鏈接,并通過?它獲取兩個(gè)流(一個(gè)輸入一個(gè)輸出),然后使用這兩個(gè)流的讀寫操作完成與服務(wù)端的數(shù)據(jù)交互

java.net.ServerSocket

ServerSocket運(yùn)行在服務(wù)端,作用有兩個(gè):

1:向系統(tǒng)申請(qǐng)服務(wù)端口,客戶端的Socket就是通過這個(gè)端口與服務(wù)端建立連接的。

2:監(jiān)聽服務(wù)端口,一旦一個(gè)客戶端通過該端口建立連接則會(huì)自動(dòng)創(chuàng)建一個(gè)Socket,并通過該Socket與客戶端進(jìn)行數(shù)據(jù)交互。

7.Client-Server Application

?TCP/IP協(xié)議中,兩個(gè)進(jìn)程間通信的主要模式為CS模型?

?主要的目的:協(xié)調(diào)網(wǎng)絡(luò)中計(jì)算機(jī)資源、服務(wù)模式、進(jìn)程間數(shù)據(jù)共享

?常見的FTP、SMTP、HTTP

8.報(bào)文段

? 報(bào)文段是指TCP/IP協(xié)議網(wǎng)絡(luò)傳輸過程中,起著路由導(dǎo)航作用。

? 可以查詢各個(gè)網(wǎng)絡(luò)路由網(wǎng)段、IP地址、交換協(xié)議等ip數(shù)據(jù)包。

? 報(bào)文段充當(dāng)整個(gè)TCP/IP協(xié)議數(shù)據(jù)包的導(dǎo)航路由功能。

? 報(bào)文在傳輸過程中會(huì)不斷的封裝成分組、包、幀來傳輸。

? 封裝的方式就是添加一些控制信息組成的首部,即報(bào)文頭。

9.傳輸協(xié)議

? ?一種約定,約束

? ?約定大于配置,在網(wǎng)絡(luò)傳輸中依然實(shí)用;網(wǎng)絡(luò)的傳輸是健壯的穩(wěn)定的,得益于基礎(chǔ)的協(xié)議構(gòu)成。

如果我們把Socket比喻為電話,那么ServerSocket相當(dāng)于是某客服中心的總機(jī)。

與服務(wù)端建立連接案例:

客戶端與服務(wù)端完成第一次通訊(發(fā)送一行字符串)

Socket提供了兩個(gè)重要的方法:

OutputStream getOutputStream()

該方法會(huì)獲取一個(gè)字節(jié)輸出流,通過這個(gè)輸出流寫出的字節(jié)數(shù)據(jù)會(huì)通過網(wǎng)絡(luò)發(fā)送給對(duì)方。

InputStream getInputStream()

通過該方法獲取的字節(jié)輸入流讀取的是遠(yuǎn)端計(jì)算機(jī)發(fā)送過來的數(shù)據(jù)。

客戶端代碼:

服務(wù)端代碼:

需要注意的幾個(gè)點(diǎn):

1:當(dāng)客戶端不再與服務(wù)端通訊時(shí),需要調(diào)用socket.close()斷開鏈接,此時(shí)會(huì)發(fā)送斷開鏈接的信號(hào)給服務(wù)端。這時(shí)服務(wù)端的br.readLine()方法會(huì)返回null,表示客戶端斷開了鏈接。

2:當(dāng)客戶端鏈接后不輸入信息發(fā)送給服務(wù)端時(shí),服務(wù)端的br.readLine()方法是出于阻塞狀態(tài)的,直到讀取了一行來自客戶端發(fā)送的字符串。



學(xué)習(xí)記錄之Java網(wǎng)絡(luò)編程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
株洲市| 大渡口区| 井冈山市| 津南区| 红河县| 双江| 玛沁县| 乾安县| 甘南县| 颍上县| 长乐市| 应城市| 崇仁县| 怀宁县| 靖宇县| 满城县| 拉孜县| 郯城县| 伊春市| 凌海市| 昭苏县| 西林县| 岳西县| 田林县| 石渠县| 湖北省| 承德县| 汪清县| 施秉县| 旌德县| 青州市| 巨鹿县| 边坝县| 青阳县| 镇康县| 广德县| 新巴尔虎右旗| 黔东| 循化| 乌苏市| 封丘县|