打开主菜单

谷雨文档中心 β

更改

NB200软件设计手册

删除472字节2019年2月17日 (日) 17:40
使用UDP协议通信
|-
|UDP测试服务器:115.29.240.46,端口号:6001
|6001端口时刻监听客户端数据,并且在收到的数据前加上“iotxx6001端口时刻监听客户端,收到数据后,加上“iotxx.udp”前缀字符串,然后延时3s后返回给客户端。
|}
===创建UDP通信Socket===
在使用模块网络收发数据之前,需要先创建一个socket,并且知道对方ip和端口号后才能发送数据。需要先创建一个socket,指定socket类型为UDP,并且指定一个本地端口。
发送如下命令创建UDP Socket<syntaxhighlight lang="bash">
#创建UDP SocketAT+NSOCR=DGRAM,17,45873000,1</syntaxhighlight>模块返回:<syntaxhighlight lang="bash">#若成功返回
0
OKok#若失败,返回错误ERROR,当开启AT+CMEE=1时,会返回详细错误ERROR 或 +CME ERROR: 4  
</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发送和接收数据===
我们需要在服务器(固定IP)上先创建一个UDP Server,指定一个端口来监听模块发来的消息。 为了快速测试,我们在谷雨服务器上,创建了一个UDP Server ,固定IP:115向UDP测试服务器发送数据。UDP测试服务器IP为<code>115.29.240.46,端口号:5000,该Server收到UDP Client发来的数据时,会在已收到的数据加上前缀:"iotxx:",然后延时5s后发回到UDP Client中。 例如客户端发送字符串"123", 等待5s后,会收到字符串 "iotxx:123" 发送数据的命令如下:46</code>,端口为<code>6001</code> <syntaxhighlight lang="bash">#发送数据命令AT+NSOST=0,115.29.240.46,50006001,3,313233</syntaxhighlight>模块立刻返回:<syntaxhighlight lang="bash">#模块返回
0,3
OK
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>
2,367
个编辑