3.1-Air302(NB-IOT)-網絡通信-TCP客戶端


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

提要

關於網絡通信:

每一台電腦都有自己的ip地址,每台電腦上的網絡應用程序都有自己的通信端口,

張三的電腦(ip:192.168.1.110)上有一個網絡應用程序A(通信端口5000),

李四的電腦(ip:192.168.1.220)上有一個網絡應用程序B(通信端口8000),

張三給李四發消息,首先你要知道李四的ip地址,向指定的ip(李四ip:192.168.1.220)發信息,

信息就發到了李四的電腦。

再指定一下發送的端口號(通信端口8000),信息就發到了李四電腦的網絡應用程序B上。

 

關於局域網和廣域網;

只能一個局域范圍內的網絡訪問就是局域網

列如:家庭里面一個路由器下設備之間通信(在一個路由器或者一個交換機下才能用的網絡打印機)

列如:一個學校,公司或組織這個區域內進行網絡通信的方式.

 

廣域網:

大范圍的基本上人人都能訪問的網絡.

列如:上網百度,現在的雲服務器,手機使用流量上網.

 

無論局域網還是廣域網,要想實現網絡通信,最實質的也是IP地址和端口號.

IP地址確定下來訪問的服務器,端口號確定下來服務器上的應用程序

 

說明

這節測試一下使用TCP客戶端連接TCP服務器.

因為是GPRS,所以只能是外網訪問(廣域網).

如果用戶想測試連接自己電腦上的TCP服務器,可以使用路由器或者花生殼映射(具體百度下吧)

這節測試程序連接的服務器是我的雲服務器上的Web服務器,然后發送HTTP  GET指令獲取服務器文件數據.

 

 

 

程序

 

 

 

-- LuaTools需要PROJECT和VERSION這兩個信息
PROJECT = "adcdemo"
VERSION = "1.0.0"

-- 一定要添加sys.lua !!!!
local sys = require "sys"


sys.taskInit(function()
    -- 等待聯網
    while not socket.isReady() do 
        log.info("wait socket ready")
        sys.wait(1000) 
    end
    -- 建立netclient對象
    local netc = socket.tcp()
    netc:host("mnif.cn")--連接的服務器的IP地址
    netc:port(80)--端口號
    --連接成功回調
    netc:on("connect", function(id, re) 
        netc:send("GET /1.txt HTTP/1.1\r\nHost: mnif.cn\r\n\r\n") --發送數據給服務器
    end)
    --接收數據回調
    netc:on("recv", function(id, data)
        log.info("recv", data)
    end)

    netc:start();--啟動連接
end)

-- 用戶代碼已結束---------------------------------------------
-- 結尾總是這一句
sys.run()
-- sys.run()之后后面不要加任何語句!!!!!

 

 

 

 

注:關閉連接  netc:closed()

 

連接自己電腦上的TCP服務器

1.確定自己家的網絡是單獨拉的網線

2.打開網絡調試助手,打開服務器,端口號隨意,我設置的 8888

 

 

 

3.查看下自己電腦的IP地址

 

 

 

 

 

 

 

 

方案1 使用路由器映射(電腦連接了此路由器)

1.關閉防火牆

 

 

 

2.進入自家路由器,找到DMZ主機

 

 

 

3.在瀏覽器上面輸入IP,獲取到自家公網IP地址

 

 

 

 

4.測試一下使用上面的公網IP 223....  端口號 8888  連接一下

如果連接成功說明可以了,就可以用GSM測試了!

如果不可以,百度下路由器端口映射 或者 看方式2

 

 

 

 

方案2  使用花生殼

1.搜索花生殼

 

 

 

 

 

2.下載並安裝,注冊,登錄

 

 

 

 

3.選擇映射配置

 

 

 

 

4.輸入先前注冊的賬號和密碼

 

 

 

5.添加映射

 

 

 

6.按照下面說明填寫

 

 

 

7.下面的意思是訪問 IP地址: 358n960z57.wicp.vip   端口號:57766

就能夠訪問到本機192.168.0.105  上的8888端口的服務器應用程序

 

 

 

 

8.測試

 

 

 

 

9.用戶可以修改程序測試

 

 

注:整個的通信流程實際上是把數據發送給了花生殼的服務器,然后花生殼的服務器

把數據發給了花生殼的客戶端,花生殼的客戶端又把數據發給了咱的調試助手.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM