成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【鴻蒙開發實錄】在Hi3861開發板上發送一個get請求

開發
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[349545]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

由于liteos-m上已經移植了lwip(一個小型開源的TCP/IP協議棧),所以在開發板上面進行網絡編程相對來說還是比較方便。相關api可在kernel/網絡.md · OpenHarmony/docs - Gitee.com上查看。

技術有限,如有錯誤還望不吝賜教。

基礎:完成官方的快速入門教程

下載源碼后可以看到在目錄

  1. \\vendor\hisi\hi3861\hi3861\app\demo\src\ 

有許多的例程代碼:

而其中剛好有http客戶端的代碼, 詳見\\vendor\hisi\hi3861\hi3861\app\demo\src\app_http_client.c,而我們只需要將這些代碼按照官方入門教程的開發方式移植到

  1. \\applications\sample\wifi-iot\app 

(其實官方例程貌似可以不需要更改,但使用的是make/makefile來構造編譯,官方教程則是gn/ninja,如果按照官方教程來就只能改代碼了)

1、首先需要讓開發板連接上網絡,詳細可參考連志安老師的帖子Hi3861 WiFi操作,熱點連接,或者下載下面的源碼參考

需要注意的是,在連接進行完WIFI連接操作后,需要使用sleep一段時間,讓開發板有足夠的時間連接上網絡。

  1. int ret; 
  2.    ret = hi_wifi_start_sta(); 
  3.    if(ret == -1) { 
  4.        printf("[Wifi] Connect failed!\n"); 
  5.    } else { 
  6.        printf("[Wifi] Connect sucess!\n"); 
  7.    } 
  8.    sleep(5); 

 2、定義get請求的header以及請求服務器的IP地址

  1. static const char *g_request = "GET / HTTP/1.1\r\n\ 
  2. Content-Type: application/x-www-form-urlencoded;charset=UTF-8\r\n\ 
  3. Host: baidu.com\r\n\ 
  4. Connectionclose\r\n\ 
  5. \r\n"; 
  6. const char addr_ip[] = "192.168.1.103"

 因為http服務是我電腦開啟的,所以ip地址是我電腦的局域網ip地址,大家可以直接使用某些公網網站的ip地址進行測試,下面會介紹我的測試方式。

創建一個Socket并連接以及寫入請求

  1. struct sockaddr_in addr = {0}; 
  2.    int s, r; 
  3.    char recv_buf[HTTPC_DEMO_RECV_BUFSIZE]; 
  4.    addr.sin_family = AF_INET; 
  5.    addr.sin_port = PP_HTONS(SOCK_TARGET_PORT); 
  6.    addr.sin_addr.s_addr = inet_addr(addr_ip); 
  7.    s = socket(AF_INET, SOCK_STREAM, 0); 
  8.    if (s < 0) { 
  9.        return 1; 
  10.    } 
  11.    printf("... allocated socket"); 
  12.    if (connect(s, (struct sockaddr*)&addr, sizeof(addr)) != 0) { 
  13.        printf("... socket connect failed errno=%d", errno); 
  14.        lwip_close(s); 
  15.        return 1; 
  16.    } 
  17.    printf("... connected"); 
  18.    if (lwip_write(s, g_request, strlen(g_request)) < 0) { 
  19.        lwip_close(s); 
  20.        return 1; 
  21.    } 

 接受獲取到的數據并打印 

  1. do { 
  2.       (void)memset_s(recv_buf, sizeof(recv_buf), 0, sizeof(recv_buf)); 
  3.       r = lwip_read(s, recv_buf, sizeof(recv_buf) - 1); 
  4.       for (int i = 0; i < r; i++) { 
  5.           putchar(recv_buf[i]); 
  6.       } 
  7.   } while (r > 0); 

 3、服務端,我是用的是python建立一個http文件服務器,很簡單,就在命令行一行代碼

  1. python -m http.server 80 

在電腦上可通過127.0.0.1訪問,開發板需要和電腦位于同一局域網內,通過ip地址連接。ip地址可在cmd輸入ipconfig查看(windows)或Linux shell 輸入ifconfig查看(Linux)。也可不用自己建立web服務,訪問一個http協議網站的ip地址即可(自行百度),注意不能使用域名訪問。

4、結果

可在命令行看到獲取的數據


 在web服務器端能看到連接的記錄

 


192.168.1.105是開發板的ip地址

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-10-30 09:48:03

Hi3861開發板get請求

2020-11-18 11:56:06

鴻蒙Hi3861

2020-12-08 12:36:41

Hi3861 ADC驅動開發

2020-10-27 10:08:19

Hi3861ADC驅動

2020-11-06 10:15:16

HiBurn

2020-10-14 09:37:03

HiBurn鴻蒙.bin文件

2021-06-25 15:32:13

鴻蒙HarmonyOS應用

2020-10-30 17:42:36

鴻蒙 OS Hi386

2020-12-15 11:57:49

Hi3861 HarmonyOS開發板

2021-09-16 10:03:39

鴻蒙HarmonyOS應用

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2020-12-17 10:02:16

鴻蒙Hi3861開發板

2020-11-24 11:41:30

websocket

2022-08-19 10:54:47

操作系統鴻蒙

2020-11-06 11:32:11

NV操作

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板

2020-10-29 09:53:06

Hi3861硬件開發板

2023-05-26 16:07:14

Hi3861Wifi模塊

2021-05-14 15:51:01

鴻蒙HarmonyOS應用

2021-12-15 15:28:18

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一二区 | 伊人网一区 | 91婷婷韩国欧美一区二区 | 美女黄频| 亚洲免费在线 | 久久久.com | 欧美一级在线视频 | 精品一区二区三区四区在线 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 91资源在线观看 | 天天干天天干 | 亚洲精品国产第一综合99久久 | 色视频在线播放 | 又黄又色 | 欧美视频在线播放 | 日韩成人一区二区 | 免费在线观看一区二区 | 日韩精品福利 | 逼逼网 | 国产一级片精品 | 欧美黄色片在线观看 | 成人免费网站视频 | 欧美激情国产精品 | 一区中文字幕 | 狠狠亚洲 | 欧美激情国产日韩精品一区18 | 久久国产高清视频 | 欧美精品中文字幕久久二区 | 中文字幕在线看第二 | 大象视频一区二区 | 欧美a∨| 亚洲欧美成人 | 国产精品三级久久久久久电影 | 国产精品久久精品 | 国产日韩欧美 | 日韩精品一区二区三区中文字幕 | 久久久久久久电影 | 日韩中文字幕在线视频 | 黄色一级大片在线观看 | 国产精品久久 | 女同videos另类|