Java 網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程:計算機跟計算機之間通過網(wǎng)絡(luò)進行數(shù)據(jù)傳送
BS(Browser/Server)架構(gòu):只需要一個瀏覽器,用戶通過不同的網(wǎng)站,客戶訪問不同的服務(wù)器
特點:方便
不需要開發(fā)客戶端,只需要頁面+服務(wù)端
用戶不需要下載,打開瀏覽器就能使用
如果應(yīng)用過大,用戶體驗受到影響
CS(Client/Server)架構(gòu):在用戶本地需要下載安裝客戶端程序,在遠程有一個服務(wù)器端程序
特點:
畫面可以做的非常精美,用戶體驗好
需要開發(fā)客戶端,也需要開發(fā)服務(wù)端
用戶需要下載和更新的時候比較麻煩
網(wǎng)絡(luò)編程三要素
確定對方電腦在互聯(lián)網(wǎng)上的地址IP
確定接受數(shù)據(jù)的軟件:端口號
確定網(wǎng)絡(luò)傳輸?shù)囊?guī)則:協(xié)議
IP:設(shè)備在網(wǎng)絡(luò)中的地址,是唯一的標(biāo)識
IP全稱:Internet Protocol,是互聯(lián)網(wǎng)協(xié)議地址,也稱IP地址,是分配給上網(wǎng)設(shè)備的數(shù)字標(biāo)簽
IPV4:全稱Internet Protocol version 4,互聯(lián)網(wǎng)通信協(xié)議第四版 采用32地址長度,分為4組,采用點分十進制表示法,如192.168.1.66
IPV6:全稱Internet Protocol version 6,互聯(lián)網(wǎng)通信協(xié)議第六版 IPV4不夠用,推出了IPV6,采用128位地址長度,分為8組,冒分十六進制 如2001:D88:0:23:8:800:200C:417A,可以為地球上每一粒沙子都設(shè)定ip
IPv4的地址分類形式
公網(wǎng)地址(萬維網(wǎng)使用)和私有地址(局域網(wǎng)使用)
192.168.開頭的就是私有地址,范圍即為192.168.0.0--192.168.255.255,專門為組織機構(gòu)內(nèi)部使用,以此節(jié)省IP
特殊IP地址:126.0.0.1,也可以是localhost,是回送地址也稱本地會換地址,也稱本機IP,永遠只會尋找當(dāng)前所在本機,不會經(jīng)過路由器

端口號:應(yīng)用程序在設(shè)備中唯一的標(biāo)識
端口號:由兩個字節(jié)表示的整數(shù),范圍065535
01023之間的端口號用于一些知名的網(wǎng)絡(luò)服務(wù)或者應(yīng)用,我們自己使用1024以上的端口號就可以了
注意:一個端口號只能被一個應(yīng)用程序所使用
協(xié)議:數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)囊?guī)則
計算機網(wǎng)絡(luò)中,連接和通信的規(guī)則被稱為網(wǎng)絡(luò)通信協(xié)議
常見的協(xié)議有UDP,TCP,http,https,ftp
OSI參考模型:世界互聯(lián)協(xié)議標(biāo)準(zhǔn),全球通信規(guī)范,單模型過于理想化,未能在因特網(wǎng)上進行廣泛推廣
TCP/IP參考模型(或TCP/IP協(xié)議):事實上的國際標(biāo)準(zhǔn) ](C:\Users\think\AppData\Roaming\Typora\typora-user-images\image-20230306221036101.png)
UDP協(xié)議
用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol)
UDP是面向無連接通信協(xié)議,速度快,有大小限制,一次最多發(fā)送64k,數(shù)據(jù)不安全,易丟失數(shù)據(jù)
發(fā)送數(shù)據(jù)
找快遞公司:創(chuàng)建發(fā)送端的DatagramSocket對象
打包禮物:數(shù)據(jù)打包(DatagramPacket)
快遞公司發(fā)送包裹:發(fā)送數(shù)據(jù)
付錢走人:釋放資源
接收數(shù)據(jù)
找快遞公司:創(chuàng)建接收端的DatagramSocket對象
接收箱子:接受打包好的數(shù)據(jù)
從箱子里面獲取禮物:解析數(shù)據(jù)包
簽收走人:釋放資源
UDP的三種通信方式:
單播:一對一 以前的代碼就是單播
組播:發(fā)送給一組 組播地址:224.0.0.0~239.255.255.255,其中224.0.0.0
239.255.255.255 其中224.0.0.0334.0.0.255為預(yù)留的組播地址
廣播:發(fā)送給所有電腦 廣播地址:255.255.255.255 代碼只需修改單播代碼的ip為255.255.255.255即可
TCP協(xié)議
傳輸控制協(xié)議TCP(Transmission Control Protocol)
TCP協(xié)議是面向連接的通信協(xié)議,速度慢,沒有大小限制,數(shù)據(jù)安全
TCP通信協(xié)議在通信的兩端各建立一個Socket對象,通信之前要保證連接已經(jīng)建立,通過Socket產(chǎn)生IO流來進行網(wǎng)絡(luò)通信
客戶端:
創(chuàng)建客戶端的Socket對象(Socket)與指定服務(wù)端連接
獲取輸出流,寫數(shù)據(jù)
釋放資源
服務(wù)器:
創(chuàng)建服務(wù)器端的Socket對象(ServerSocket)
監(jiān)聽客戶端連接,返回一個Socket對象
獲取輸入流,讀數(shù)據(jù),并把數(shù)據(jù)顯示在控制臺
釋放資源
TCP三次握手:確保連接建立
客戶端想服務(wù)器發(fā)出連接請求,等待服務(wù)器確認
服務(wù)器想客戶端返回一個響應(yīng),告訴客戶端受到了請求
客戶端想服務(wù)器再次發(fā)出確認信息,連接建立
TCP四次揮手:確保連接斷開,且數(shù)據(jù)處理完畢
客戶端向服務(wù)器發(fā)出取消連接請求
服務(wù)器向客戶端返回一個響應(yīng),表示收到客戶端取消請求 服務(wù)器將最后的數(shù)據(jù)處理完畢
服務(wù)器向客戶端發(fā)出確認取消信息(多了這么一步)
客戶端再次發(fā)送確認信息,連接取消