day23
-
- 網絡程式設計
-
- 網絡程式設計三要素:
-
- IP位址
- 端口号
- 通信協定
- TCP協定
- UDP協定
網絡程式設計
1、網絡:計算機網絡,由在不同地理位置、不同的計算機主機,互聯形成的一個計算機系統。有通訊和資料共享的作用。
2、網絡程式設計:在已經擁有完備成熟的網絡系統之後,在整個基礎上,使用網絡進行程式設計,對應用層進行設計的活動。
網絡程式設計三要素:
IP位址
1、在一個計算機網絡中,某台計算機在網絡中的唯一标志
2、分類:
IPv4:
使用4個0-255的數字,來表示一個ip位址,32位,2^32個位址,将近43億
IPV4的四個數字的規則:
前三個 數字:代表目前電腦所屬的子網
最後一個數字:代表在這個子網下每一個電腦的編号,在同一個子網下,不可能出現
相同的編号,如果有,就會報IP位址沖突
最後一個數字有幾個特别的數字:
0表示目前子網的編号
255表示廣播位址(在整個子網中的所有位址,都會接收到發送到廣播位址的資料)
特殊的IP位址:127.0.0.1,表示本地回環位址,對應有個域名localhost
相關的指令:ipconfig(查詢目前網卡資訊) ping(檢視某個IP是否聯通)
IPv6:
由8組數字組成,每組數字都是4個16進制數(16的32次方)
地球上每一粒沙子都有一個ip位址

端口号
通信協定
網絡分層:就是分工,為了每一個機關都可以非常專業的做自己的事情
應用層:http協定、https協定、FTP協定
傳輸層:UDP協定、TCP協定
網絡層:IP協定、路由協定
實體層:底層硬體裝置、資料的完整和校驗
協定:
各個計算機網絡傳輸的一個規範: 協定分為7層
主要說的是傳輸層 : TCP UDP + xmpp 協定 ==> 即時通訊(qq,微信)
web階段主要: http 協定 https 協定
UDP面向無連接配接的協定: 傳輸的資料快,但是可以會丢資料(cts飛q) 會出現卡頓
TCP 面向連接配接的協定: 傳輸慢,不會丢失資料(三次握手) ==>qq傳消息 文字需要準确性,使用的就是這個協定
http 與https==>都是屬于一次性的連接配接==>也就是用戶端給伺服器發送請求,當互動完,這個請求就斷開了
https =http+ssl 證書,這個證書保證資料的傳輸的安全性 大部分上線的網站都會使用https協定
TCP協定
- 執行個體化這個socket對象
-
通過socket對象 得到輸出流 OutputStream
3.調用 write()
-
shutdownOutput()
5.拿到輸入流 InputStream
-
new BufferReader(new InputStreamReader(new FileInputStream))
7.關閉資源
多線程
如果有兩個用戶端, 一個伺服器,就會産生這樣一個錯誤 Connection refused: connect
解決這個問題 : 是用多線程解決這個問題 : 解決多個用戶端對應一個伺服器的問題
使用socket實作檔案上傳的功能
UDP協定
基于udp比較繁瑣, 沒有擷取流對象的方法,所有隻能夠按照以上的方法區操作
開發使用的是第三方 環信與融雲(sdk) tcp+udp 即時通信