本文來源電子發燒友社區,作者:劉宇瑩, 帖子地址:https://bbs.elecfans.com/jishu_2008562_1_1.html
本篇學習內容主要參考潤和官方demo
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development
連老師TCPdemo,連老師寫的是服務器,我這個就寫了一個客戶端
https://bbs.elecfans.com/jishu_1994928_1_1.html
包括以前在朱老師大講堂學習網絡編程相關知識,再此做個整理,感謝各位老師。
1、網絡編程的框架
應用層
網絡服務與最終用戶的一個接口。
協議有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示層
數據的表示、安全、壓縮。(在五層模型里面已經合并到了應用層)
格式有,JPEG、ASCll、EBCDIC、加密格式等
會話層
建立、管理、終止會話。(在五層模型里面已經合并到了應用層)
對應主機進程,指本地主機與遠程主機正在進行的會話
傳輸層
定義傳輸數據的協議端口號,以及流控和差錯校驗。
協議有:TCP UDP,數據包一旦離開網卡即進入網絡傳輸層
網絡層
進行邏輯地址尋址,實現不同網絡之間的路徑選擇。
協議有:ICMP IGMP IP(IPV4 IPV6)
數據鏈路層
建立邏輯連接、進行硬件地址尋址、差錯校驗等功能。(由底層網絡定義協議)
將比特組合成字節進而組合成幀,用MAC地址訪問介質,錯誤發現但不能糾正。
物理層
建立、維護、斷開物理連接。(由底層網絡定義協議)
(以上摘自百度百科 七層模型)
2、TCP 協議
(1)工作在傳輸層,對上服務socket接口(API),對下IP層(數據鏈路層)
(2)面向鏈接,通信前必須建立鏈接,需要先3次握手,也就是先撥號,QQ聊天就不是面向鏈接的,因為可以留言,但是視頻或者打電話就必須建立鏈接
(3)TCP傳輸可靠,不拍丟包、亂序等
3、TCP協議如何保證
(1)必須先握手(三次握手建立連接,四次握手關閉連接)
(2)接收方收到數據后必應答,否則發送方會丟包重傳
(3)內容附帶校驗
(4)根據網絡帶寬來自動調節適配速率(滑動窗口技術),通俗講就是發送成功了會慢慢變快,失敗了會慢慢變慢
(5)發送方會給各分割報文編號,接收方會校驗編號,一旦順序錯誤即會重傳
以上(1)、(2)、(3)、(4)對應的是一個包內部的可靠方式 (5)是每個包之間的可靠保證。
4、socket服務器編程接口
(1)socket類似open,用來打開一個網絡連接,返回一個網絡文件描述符server_fd,之后網絡連接的操作都通過網絡文件描述符
(2)bind 把本地的IP地址和網絡文件描述符(server_fd)綁定起來
(3)listen backlog監聽隊列長度,主要看服務器的帶載能力,允許同時訪問的數量
(4)accept阻塞等待,如果返回,返回客戶端的sockaddr 和長度(sockaddr的長度),返回值為client_fd。之后和這個客戶端的讀寫都通過client_fd。
(5)send/write寫操作
(6)recv/read讀操作
(7)close會話完成后,可以執行close關閉
5、socket服務器編程接口
(1)socket類似open,用來打開一個網絡連接,返回一個網絡文件描述符server_fd,之后網絡連接的操作都通過網絡文件描述符
(2)connect 連接目標服務器
(3)send/write寫操作
(4)recv/read讀操作
(5)close會話完成后,可以執行close關閉
下面是鴻蒙tcp客戶端的demo
附上作者原項目源代碼下載,詳細見作者原帖子文章。
本篇學習內容主要參考潤和官方demo
https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development
連老師TCPdemo,連老師寫的是服務器,我這個就寫了一個客戶端
https://bbs.elecfans.com/jishu_1994928_1_1.html
包括以前在朱老師大講堂學習網絡編程相關知識,再此做個整理,感謝各位老師。
1、網絡編程的框架

應用層
網絡服務與最終用戶的一個接口。
協議有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
表示層
數據的表示、安全、壓縮。(在五層模型里面已經合并到了應用層)
格式有,JPEG、ASCll、EBCDIC、加密格式等
會話層
建立、管理、終止會話。(在五層模型里面已經合并到了應用層)
對應主機進程,指本地主機與遠程主機正在進行的會話
傳輸層
定義傳輸數據的協議端口號,以及流控和差錯校驗。
協議有:TCP UDP,數據包一旦離開網卡即進入網絡傳輸層
網絡層
進行邏輯地址尋址,實現不同網絡之間的路徑選擇。
協議有:ICMP IGMP IP(IPV4 IPV6)
數據鏈路層
建立邏輯連接、進行硬件地址尋址、差錯校驗等功能。(由底層網絡定義協議)
將比特組合成字節進而組合成幀,用MAC地址訪問介質,錯誤發現但不能糾正。
物理層
建立、維護、斷開物理連接。(由底層網絡定義協議)
(以上摘自百度百科 七層模型)
2、TCP 協議
(1)工作在傳輸層,對上服務socket接口(API),對下IP層(數據鏈路層)
(2)面向鏈接,通信前必須建立鏈接,需要先3次握手,也就是先撥號,QQ聊天就不是面向鏈接的,因為可以留言,但是視頻或者打電話就必須建立鏈接
(3)TCP傳輸可靠,不拍丟包、亂序等
3、TCP協議如何保證
(1)必須先握手(三次握手建立連接,四次握手關閉連接)
(2)接收方收到數據后必應答,否則發送方會丟包重傳
(3)內容附帶校驗
(4)根據網絡帶寬來自動調節適配速率(滑動窗口技術),通俗講就是發送成功了會慢慢變快,失敗了會慢慢變慢
(5)發送方會給各分割報文編號,接收方會校驗編號,一旦順序錯誤即會重傳
以上(1)、(2)、(3)、(4)對應的是一個包內部的可靠方式 (5)是每個包之間的可靠保證。
4、socket服務器編程接口
(1)socket類似open,用來打開一個網絡連接,返回一個網絡文件描述符server_fd,之后網絡連接的操作都通過網絡文件描述符
(2)bind 把本地的IP地址和網絡文件描述符(server_fd)綁定起來
(3)listen backlog監聽隊列長度,主要看服務器的帶載能力,允許同時訪問的數量
(4)accept阻塞等待,如果返回,返回客戶端的sockaddr 和長度(sockaddr的長度),返回值為client_fd。之后和這個客戶端的讀寫都通過client_fd。
(5)send/write寫操作
(6)recv/read讀操作
(7)close會話完成后,可以執行close關閉
5、socket服務器編程接口
(1)socket類似open,用來打開一個網絡連接,返回一個網絡文件描述符server_fd,之后網絡連接的操作都通過網絡文件描述符
(2)connect 連接目標服務器
(3)send/write寫操作
(4)recv/read讀操作
(5)close會話完成后,可以執行close關閉
下面是鴻蒙tcp客戶端的demo
附上作者原項目源代碼下載,詳細見作者原帖子文章。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
wi-fi
+關注
關注
15文章
2424瀏覽量
129553 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36053 -
HiSpark
+關注
關注
1文章
156瀏覽量
7757
發布評論請先 登錄
相關推薦
熱點推薦
Qorvo深度探討Wi-Fi 8的核心特性和設計挑戰
隨著無線需求的不斷升級,Wi-Fi 8的到來為系統和硬件設計師帶來一個關鍵的轉折點。Wi-Fi 8不僅僅是又一次速度上的代際提升,更有望改變接入點(AP)、客戶端設備和無線系統相互協同的方式,突破性能、效率,與共存能力的邊界。
Wi-Fi模塊選型指南 | 低功耗藍牙/Wi-Fi 6模塊推薦 | 物聯網設備集成攻略
:選擇用模塊的理由: 是為了方便電路集成設計,特別是硬件兼容集成設計,這樣只要產品前期做好了綜合設計,后續做產品設計以及應用端的靈活選擇,提供了很大的便利,省得重復設計硬件,縮短開發周,加快將產品推向市場的時間; 二:Wi-Fi模塊選型注意點
押注智能物聯網和AI加速融合,Ceva推出Wi-Fi7客戶端IP
電子發燒友原創 章鷹 近期,蘋果發布最新 iPhone 17、iPhone 17 Pro、iPhone 17 Pro Max 和 iPhone Air,皆搭載蘋果全新 N1芯片,支持 Wi-Fi 7
Ceva推WiFi7 1x1客戶端IP 助力打造更智能、更敏捷的人工智能物聯網設備及新興物理人工智能系統
現已上市并獲得多家客戶采用的Ceva-Waves Wi-Fi? 7 1x1客戶端IP提供超高性能與低延遲連接能力,助力可穿戴設備、智能家居設備及工業物聯網實現邊緣智能 ? ? 隨著物聯
libmodbus庫問題:TCP模式下客戶端超時斷開后無法再次重連怎么解決?
情況1 :用libmodbus的TCP demo,發現用客戶端軟件連接收發如果超時后在啟動連接就無法連接上libmodbus服務器了,聲明:客戶端此時不會主動斷開連接。
情況2:
發表于 10-14 08:17
基于Microchip WFI32E02UC Wi-Fi? MCU模塊的物聯網應用開發指南
Microchip Technology WFI32E02UC高引腳數 (HPC) Wi-Fi? MCU模塊設有60個GPIO引腳,專門設計用于工業物聯網 (IoT) 應用。WFI32E02UC
LitePoint Wi-Fi測試軟件減輕客戶設計負擔
自Wi-Fi 7于一年多前獲得Wi-Fi聯盟認證以來,作為最新一代通信技術,Wi-Fi正逐步成為用戶實現無所不在無線連接的新選擇。隨著每一代Wi-Fi信號復雜性的提升,建議將硬件測試納
GraniStudio : TCP/IP(Socket)協議深度剖析
(Socket)客戶端與服務器模塊,通過高度封裝的可視化功能,將復雜的套接字通信邏輯轉化為簡單的 “拖拽式” 操作,為工業用戶構建穩定、高效的網絡通信系統提供了強大支撐。本文將從技術原理、功能實現、應用場景三個維度,深入解析 GraniStudio 中 TCP/
Texas Instruments CC335x SimpleLink?雙頻Wi-Fi? 6配套IC數據手冊
) 和Wi-Fi 5 (802.11ac)。這些CC335x是Texas Instruments的第10代連接組合芯片。因此,CC335x基于成熟的技術設計而成。這些器件非常適合配備運行TCP/IP的Linux或
?迅通PTR7002 Wi-Fi 6模塊技術解析
在物聯網設備對無線連接性能要求日益嚴苛的背景下,迅通推出的?PTR7002 Wi-Fi 6模塊?憑借其技術特性成為開發者關注的硬件方案。本文將從芯片架構、射頻性能及開發支持等維度進行深度剖析
發表于 06-10 10:38
nRF Cloud Wi-Fi 定位服務
客戶云或返回到設備。
Nordic Semiconductor 于今年年初發布了我們的 Wi-Fi 產品系列 nRF70 系列。該系列推出的首款芯片是 nRF7002,它是一款超低功耗雙頻無線協同 IC
發表于 04-17 15:07
Wi-Fi 定位服務
Wi-Fi 是一種著名的無線網絡技術,用于設備的局域網和互聯網接入。Wi-Fi 通過 Wi-Fi 網絡為家庭、辦公室和學校等環境提供便捷的無線互聯網接入服務。
Wi-Fi 定位是一種
發表于 04-17 15:01
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】TCP/IP編程簡述和TCP客戶端demo
評論