第18章 網路程式設計
計算機上面可以安裝非常多的應用軟體,那麼如何區分這些軟體?需要通過埠號來區分,埠號,相當與房子中開的們.
一、埠號在計算機裡面有2個位元組那麼大,因此埠號的取值範圍:0–65535 共65536個 但是1024以下的埠號,通常是計算機內建軟體埠 類似於現實生活中的短號號碼 120
110 119 …
二、1024以上的我們都可以用,並且為了避免重複性,推薦大家埠號定義越大越好.
三、多個軟體之間,如果使用同一種通訊協議,那麼軟體之間,埠號不允許重複. 但是不同協議,埠可以重複.
四、資源定位 url:統一資源定位符 uri:統一資源修飾符. user/1
五、資料的傳輸
1、計算機之間底層通過傳輸010101010100110010010這樣的資料進行通訊,但是通訊時,如果識別有效資料,還是需要不同的協議才能完成,不然就會造成:雞同鴨將的效果.
協議中,場景的底層協議:tcp/udp
tcp/ip:非常類似於打**,它是一種面向連線的協議. 他的特點:安全可靠但是效率相對udp而言,較為低下 —請求響應模式
udp:類似於發簡訊,類似於廣播,它是一種非面向連線的協議. 他的特點:不可靠,安全性較低, 但是它的效率較高.
2、資料在進行傳輸時,需要經過一系列的封裝和拆分的過程.
1)、資料的封裝.
2)、資料的拆分.
採用了分層的思想,來完成對層次的解耦,以及各層的職責分離,讓各層能夠合理分工合作. --osi七層模型.
六、 客戶端和伺服器
c/s client/server (胖客戶端) 特點:需要安裝 需要更新.
b/s browser/server (瘦客戶端) 特點:不需要安裝,更不需要更新,伺服器更新之後,開啟瀏覽器,自動更新.
七、傳輸層的傳輸方式
需要解決到達計算機的osi七層模型中的010101010100100這種二進位制資料,如何才能到達我們的應用軟體.
傳輸層的作用:就是建立乙個資料傳輸通道,將來自於osi七層模式中下三層的資料傳輸到我們應用程式中.
這個資料傳輸通道,我們把它稱之為socket接字,實際上,就類似於我們現實生活中的飛機場、食品廠、物流中的"傳輸履帶",只不過他的特點是:可以雙向傳輸.
作為傳輸層來講,只有2種傳輸協議,tcp/ip(三次握手四次揮手),udp.
tcp/ip:建立連線三次握手-----關閉連線四次揮手.
tcp/ip套接字程式設計:
服務端(serversocket)
客戶端(socket)
udp套接字程式設計:
服務端(datagramsocket)
客戶端(datagramsocket)
udp: 不是面向連線的協議,它是以資料為中心的協議,它的特點:資料的可靠性較差 資料容易丟失 但是它的效率高
一:類datagramsocket datagrampacket
客戶端1、建立客戶端 datagramsocket 類 + 埠 (指定:我的資料從哪個埠出去)
2、準備資料 只不過這些資料,需要裝配到位元組陣列中去
3、將資料打包 datagrampacket + 伺服器位址及埠號 來完成打包
4、傳送
5、釋放資源
伺服器端
1、建立服務端 datagramsocket類 + 埠(指定:我從哪個埠獲取資料)
2、準備接收資料 同樣需要定義乙個位元組陣列 封裝datagrampacket
3、接收資料
4、分析資料
5、釋放資源
第18章非同步程式設計 isolate create
防採集標記 亢少軍老師的課程和資料 isolate create.dart檔案 import dart isolate import dart io void main 建立乙個新的isolate void create isolate asyncelse 處理耗時任務 接收乙個可以向主isolat...
第18章 多執行緒程式設計 3
18.5 threading模組 threading模組支援守護執行緒,它們是這樣工作的 守護執行緒一般是乙個等待客戶請求伺服器,如果客戶提出請求,它就在那等著。如果你設定乙個執行緒為守護執行緒,就表示你在說這個執行緒是不重要的,在程序退出的時候,不用等待這個執行緒退出。如果你想要等待子執行緒完成再...
第14章 網路程式設計
14.1 幾個網路模組 服務端 import socket s socket.socket host socket.gethostname port 8090 s.bind host,port s.listen 5 while true c,addr s.accept print got conne...