• 3.2-Air302(NB-IOT)-网络通信-UDP通信


    <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地址确定下来访问的服务器,端口号确定下来服务器上的应用程序

    说明

    这节程序连接的服务器是 ntp1.aliyun.com  端口号 32

    是阿里云的时间服务器

    不过我没有封装好NTP协议,所以只连接上了,没有获取到数据

    程序

    -- 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.udp()
        netc:host("ntp1.aliyun.com")--连接的服务器的IP地址
        netc:port(32)--端口号
        
        --连接成功回调
        netc:on("connect", function(id, re) 
            --0x1b,0x13,0x0b
            local hexdata = string.char(0x1b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
            netc:send(hexdata) --发送数据给服务器
        end)
        --接收数据回调
        netc:on("recv", function(id, data)
            log.info("recv", data)
        end)
    
        netc:start();--启动连接
    end)
    
    -- 用户代码已结束---------------------------------------------
    -- 结尾总是这一句
    sys.run()
    -- sys.run()之后后面不要加任何语句!!!!!

    注:关闭连接  netc:closed()

    连接自己电脑上的UDP参考上一节

  • 相关阅读:
    两种三维点云密度聚类方法的研究与对比
    C++ string和char char*的转换
    七大排序算法总结
    map下标操作和insert区别
    c++ map 使用自定义结构做关键字
    BagFromImage安装与使用
    安装ipython notebook
    c++基本知识
    Python爬虫第一集
    91. Decode Ways
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14083829.html
Copyright © 2020-2023  润新知