1. 程式人生 > >基於4G Cat.1的內網穿透例項分享

基於4G Cat.1的內網穿透例項分享

上一篇分享了:[小熊派4G開發板初體驗](https://t.1yb.co/OGy) 這一篇繼續BearPi-4G開發板實踐:`內網穿透實驗`。 ## 基本TCP的socket通訊測試 之前我們學習WiFi模組時,與PC進行TCP協議的socket通訊測試我們只要在我們的PC上通過網路助手建立一個TCP Server就可以進行測試,我們的開發板當作客戶端與網路助手進行通訊。WiFi模組能直接與我們的PC通訊(前提是兩者能互ping得通)是因為它們兩個在同一個區域網內,我們的路由器給我們的WiFi模組與電腦各動態分配一個內網IP。場景大概如下: ![](https://s1.ax1x.com/2020/06/30/N5PDUS.png) 而我們這裡要使用4G模組與我們的PC進行通訊,需要進行`內網穿透`。因為4G模組用的是公網/外網IP地址,而我們的PC用得是一個內網IP地址。所以需要藉助一臺具有公網IP的伺服器進行中轉。場景大概如下: ![](https://s1.ax1x.com/2020/06/30/N5Pr4g.png) 可見,我們的4G模組要與我們的PC機進行一個TCP的socket通訊測試的話,必須要進行一個`內網穿透`。進行內網穿透可借用一些內網穿透的產品及工具。網路上大家常用的有: - **ngrok** > http://www.ngrok.cc/ ![](https://s1.ax1x.com/2020/06/30/N5PyCQ.png) - **花生殼** > https://www.oray.com/ ![](https://s1.ax1x.com/2020/06/30/N5PRuq.png) - **NATAPP** > https://natapp.cn/ ![](https://s1.ax1x.com/2020/06/30/N5PI5F.png) 我們這裡使用ngrok來進行內網穿透實驗。具體步驟可閱讀《BearPi-4G實戰開發指南_V1.0》。 **1、開通隧道** ![](https://s1.ax1x.com/2020/06/30/N5Pgvn.png) **2、配置隧道** ![](https://s1.ax1x.com/2020/06/30/N5Pcgs.png) 檢視本地IP的方法: ![](https://s1.ax1x.com/2020/06/30/N5P4ET.png) **3、檢視隧道** ![](https://s1.ax1x.com/2020/06/30/N5P63j.png) 檢視隧道,記錄隧道ID、贈送域名及埠等資訊。 **4、下載Ngrok客戶端並啟動** ![](https://s1.ax1x.com/2020/06/30/N5PWD0.png) ![](https://s1.ax1x.com/2020/06/30/N5PfbV.png) ![](https://s1.ax1x.com/2020/06/30/N5P5UU.png) 上面是搭建一個內網穿透的條件。搭建好了內網穿透環境之後,我們就可以進行一個socket通訊測試實驗了。4G模組sdk開發包已經有給我們準備了一個tcp_client的demo,我們直接使用這個demo進行測試。相關程式碼在路徑:`ql-sdk\ql-application\threadx\interface\network\sockets\example`下的`example_sockets_tcp_client.c`: ![](https://s1.ax1x.com/2020/06/30/N5PTC4.png) 我們需要開啟最後一行的註釋,啟動相關tcp_client測試任務。 同時,需要修改`ql-sdk\ql-application\threadx`下的Makefile檔案,新增`example_sockets_tcp_client.c`所在的路徑: ![](https://s1.ax1x.com/2020/06/30/N5P78J.png) 最後,編譯、生成韌體、下載驗證: ![](https://s1.ax1x.com/2020/06/30/N5PH29.png) 以上就是本次的實踐分享。如有錯誤,歡迎指出