== 使用TCP协议通信 ==
NB200(BC28)和NB101(BC95)相比,额外支持TCP协议,TCP协议和UDP很相似,但是TCP可靠性更高。TCP协议与UDP协议类似,NB模块作为TCP的客户端,连接TCP的服务端,连接成功后可以收发数据。
首先创建TCP协议Socket为了方便测试,我们在云平台上启用了一个TCP测试服务器,无论发任何数据,在3秒后,会加上前缀字符串返回数据。注意,使用电信卡的用户很可能无法与我们的服务器通信。因为电信NB网络有定向访问的限制。 BC28、BC35均支持TCP协议,BC95不支持。{| class="wikitable"!接口!功能|-|TCP测试服务器:115.29.240.46,端口号:9001|9001端口时刻监听客户端,收到数据后,加上“iotxx.tcp”前缀字符串,然后延时3s后返回给客户端。|} === 创建TCP客户端 ===需要先创建一个socket,指定socket类型为TCP,并且指定一个本地端口。<syntaxhighlight lang="bash">#创建 TCP SocketAT+NSOCR=STREAM,6,560004000,1 #若成功返回1OK#若失败,返回错误ERROR,当开启AT+CMEE=1时,会返回详细错误ERROR 或 +CME ERROR: 4 </syntaxhighlight>模块返回:创建socket的指令格式为:<code>AT+NSOCR=<type>,<protocol>,<listen-port>[,<receive control>]</code> {| class="wikitable"!参数!说明|-|<type>|TCP协议固定取值为STREAM|-|<protocol>|Socket通信协议,TCP协议固定取值为6|-|<listen-port>|本地监听端口,不是远程TCPServer的端口。示例中取值4000。BC28模块支持创建7路Socket,若再次创建socket,本地端口请+1,注意不要和已创建的重复即可。|}返回格式为: <socket-id> OK{| class="wikitable"!参数!说明|-|<socket-id>|刚刚创建的Socket ID,后续通信需要携带此ID,需要记录。例如上述命令返回的socket Id为1|} === 连接TCP服务器 ===TCP协议比UDP协议多一个连接步骤,调用一下命令连接TCP服务器。<syntaxhighlight lang="bash">#连接TCP服务器AT+NSOCO=1,115.29.240.46,9001 #模块返回OK </syntaxhighlight>指令格式:AT+NSOCO=<socket>,<remote_addr>,<remote_port> === TCP数据收发 ===
==使用CoAP协议通信==