2,367
个编辑
更改
→使用UDP协议通信
|-
|UDP测试服务器:115.29.240.46,端口号:6001
|6001端口时刻监听客户端数据,并且在收到的数据前加上“iotxx6001端口时刻监听客户端,收到数据后,加上“iotxx.udp”前缀字符串,然后延时3s后返回给客户端。
|}
===创建UDP通信Socket===
发送如下命令创建UDP Socket<syntaxhighlight lang="bash">
#创建UDP SocketAT+NSOCR=DGRAM,17,45873000,1</syntaxhighlight>模块返回:<syntaxhighlight lang="bash">#若成功返回
0
</syntaxhighlight>创建socket的指令格式为:
|-
|<type>
|Socket类型,取值为DGRAMUDP固定取值为DGRAM
|-
|<protocol>
|-
|<listen-port>
|本地监听端口,不是远程UDP-Server的端口。示例中取值4587。BC28模块支持创建7路UDP Socket,再次创建socket,注意本地端口取值不要重复,其他情况对本地端口的取值没有任何要求。Server的端口。示例中取值3000。BC28模块支持创建7路UDP Socket,若再次创建socket,本地端口请+1,注意不要和已创建的重复即可。
|}返回格式为:
OK
{| class="wikitable"刚刚创建了第一个UDP Socket,因此socket!参数!说明|-id为0,模块数据收发均要使用此处返回的socket|<socket-id,请牢记。id>|刚刚创建的Socket ID,后续通信需要携带此ID,需要记录。例如上述命令返回的socket Id为0|}
===UDP发送和接收数据===
0,3
OK
</syntaxhighlight>发送数据指令格式为:AT+NSOST=<socket-id>,<remote_addr>,<remote_port>, <length>,<nowiki><data></nowiki>
{| class="wikitable"
|-
|<socket-id>
|刚刚创建的UDP通信socket编号,从0开始,若创建了两个UDP的socket,则第一个为id编号0,第二个id编号为1填写已创建的socket Id,请参考上节AT+NSOCR命令
|-
|<remote_addr>,<remote_port>
|远程服务器IP地址和端口,例如我们的NB云平台IP地址为:115UDP服务器IP地址和端口,例如我们的UDP测试服务器:<code>115.29.240.46,端口为:500046:6001</code>
|-
|<length>,<nowiki><data></nowiki>