//TCP 连接建立成功 
//发送数据 
//远端收到数据 
//收到数据 
//远端关闭连接 
 
 
 
 
 
 
 
 
 
 
 
 
 
1.  如何建立一个 TCP 连接? 
AT+CIPSTART="TCP","116.228.221.51",5555 
 
OK 
 
CONNECT OK 
AT+CIPSEND 
 
> HELLO WORLD  
 
SEND OK 
HELLO SIM900 
 
 
CLOSED  
 
2.  如何建立一个 UDP 连接? 
AT+CIPSTART="UDP","116.228.221.51",6666 
OK 
 
CONNECT OK 
AT+CIPSEND 
 
> UDP TEST 
SEND OK 
SIM900 UDP TEST 
AT+CIPCLOSE 
 
 
 
 
CLOSE OK 
 
3.  如何建立一个 TCP SERVER? 
AT+CIPSERVER=1,1234 
 
OK 
 
SERVER OK   
AT+CIFSR 
 
211.136.131.1  
AT+CIPSTATUS 
 
OK 
 
STATE: SERVER LISTENING 
 
REMOTE IP: 211.136.130.1   
//关闭 UDP 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//查询本地 IP 
//建立 TCP 服务器,监听端口号为 1234 
//TCP SERVER 建立成功 
//查询当前状态为 SERVER  监听状态 
//远端连接进入 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
//开启透传模式 
//关闭 SERVER  成功 
//收到数据 
//关闭 TCP 连接 
AT+CIPSERVER=0 
 
OK 
 
SERVER CLOSE 
 
HELLO SIM900 
AT+CIPCLOSE 
 
 
CLOSE OK 
 
4.  如何进入透传模式? 
AT+CIPMODE=1   
 
OK 
 
AT+CIPSTART="TCP","116.228.221.51",5555 
 
OK 
 
CONNECT 
SIM900 CHANNEL TEST 
 
 
OK   
ATO  
 
 
CONNECT 
 
CLOSED  
 
说明:透传模式支持 TCP  ,UDP,TCP SERVER 
 
5.  如何激活场景? 
a.在非多连接情况下,可以使用直接使用 CIPSTART 或 CIPSERVER 激活 
b.在任意情况下,都可以使用 CSTT  ,CIICR,CIFSR 组合命令 
//通过 DTR 或者+++退出透传模式 
//通过 ATO 回到透传模式 
//连接成功,进入透传模式 
//收到远端数据 
//远端关闭,退出透传模式 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AT+CSTT 
OK 
AT+CIICR 
 
OK   
AT+CIPSTATUS 
 
 
 
//激活成功 
OK 
 
 
STATE: IP GPRSACT 
AT+CIFSR 
 
 
10.79.190.47 
 
如果激活失败 
AT+CIICR 
 
+PDP: DEACT 
ERROR   
 
AT+CIPSTATUS 
 
OK 
 
STATE: PDP DEACT 
 
 
 
 
 
 
 
 
6.  如何释放场景? 
AT+CIPSHUT 
 
SHUT OK 
 
 
 
//查询状态为激活成功状态 
 
 
 
 
 
//激活失败 
//查询状态为激活失败状态 
//释放场景,如果有连接存在,关闭连接。 
7.  多连接模式下进行 TCP 和 UDP 连接? 
AT+CIPMUX=1 
 
 
 
 
//开启多连接功能 
 
 
 
 
 
 
 
 
OK 
AT+CSTT 
OK 
AT+CIICR 
OK 
AT+CIFSR 
10.76.166.72 
AT+CIPSTART=0,"UDP","116.228.221.51",6666 
OK 
0, CONNECT OK 
AT+CIPSTART=1,"TCP","116.228.221.51",5555 
OK 
1, CONNECT OK 
AT+CIPSEND=0 
> UDP TEST 
0, SEND OK 
AT+CIPSEND=1 
> TCP SEND TEST 
1, SEND OK 
+RECEIVE,1,17: 
SIM900 TCP TEST 
 
+RECEIVE,0,17: 
 
SIM900 UDP TEST 
 
1, CLOSED 
AT+CIPSTATUS 
 
 
 
 
 
 
 
 
 
OK 
STATE: IP PROCESSING 
 
 
 
 
 
 
 
 
 
 
 
//收到连接 1 的数据,长度为 17 字节 
//收到连接 0 的数据,长度为 17 字节 
//连接 1 被远端关闭 
//状态为 IP 连接状态 
//第 1 个 0 表示连接序号,第 2 个 0 表示激活场景,默认为 0。第 3 个参数为协议类型, 
第 4,5 参数为远端的 IP 和端口号。第 6 参数表示目前处于连接状态。 
C: 0,0,"UDP","116.228.221.51","6666","CONNECTED" 
C: 1,0,"TCP","116.228.221.51","5555","CLOSED" 
C: 2,,"","","","INITIAL" 
C: 3,,"","","","INITIAL" 
C: 4,,"","","","INITIAL" 
C: 5,,"","","","INITIAL" 
C: 6,,"","","","INITIAL" 
C: 7,,"","","","INITIAL" 
//参数 6 表示连接已经被关闭 
 
 
8.  多连接模式下进行 TCP SERVER,TCP,UDP 连接? 
AT+CIPMUX=1 
 
 
 
 
//开启多连接功能 
 
 
 
OK 
AT+CSTT 
OK 
AT+CIICR 
OK 
AT+CIFSR 
 
 
 
 
 
 
 
 
 
211.136.129.129 
AT+CIPSERVER=1,8888 
OK 
 
 
//开启 SERVER,监听 8888 端口 
SERVER OK 
 
0, REMOTE IP: 211.136.130.129    // 远端连接进分配为连接 0,允许最多 7 路连接进入 
 
AT+CIPSTART=1,'TCP","116.228.221.51",2333 
 
OK 
 
1, CONNECT OK 
AT+CIPSTATUS 
OK 
STATE: IP PROCESSING 
 
//当多连接模式下开启 SERVER 会有该提示,第 1 参数表示 SERVER 序号,默认为 0。
第 2 参数表示激活场景,默认为 0。第 3 参数表示监听端口。第 4 参数表示处于监听状
态。 
S: 0,0,"8888","LISTENING"   
 
C: 0,0,"TCP","211.136.130.129","2020","CONNECTED" 
C: 1,0,"TCP","116.228.221.51","2333","CONNECTED" 
C: 2,,"","","","INITIAL" 
C: 3,,"","","","INITIAL" 
C: 4,,"","","","INITIAL" 
C: 5,,"","","","INITIAL" 
C: 6,,"","","","INITIAL" 
C: 7,,"","","","INITIAL" 
 
AT+CIPSERVER=0  
//关闭 SERVER 
 
 
OK 
SERVER CLOSE 
AT+CIPSHUT  
 
SHUT OK 
 
 
 
 
//关闭场景并断开所以连接。 
9.  CIPSEND 功能命令 
连接后使用 
AT+CIPSEND? 
 
 
 
 
 
 
 
+CIPSEND: 1380 
//当前网络获得的每次能发送的最大值为 1380 字节。在实际使用中这个值是变化的,最
大值可以到 1460.具体视实际网络而定。 
 
 
 
OK 
AT+CIPSEND=1381 
 
//这时定长发送最大值如果大于 1380,就返回 ERROR 
ERROR 
AT+CIPSEND 
>123….999 
ERROR 
 
 
 
//当输入的实际数据大于 1380 时返回 ERROR 
 
10.  CLPORT 功能命令 
CLPORT 仅仅适应于在非多连接状态下,TCP 或 UDP 的本地端口号。当为 0 时将为连接自
动分配一个端口号,而如果设置为一个非 0 值,会将本地端口号固定在这个非 0 值。默认为
0。 
AT+CLPORT? 
 
 
 
 
 
 
 
 
 
TCP: 0 
UDP: 0 
OK 
 
11.  CIPCLOSE 的特殊功能 
在非多连接状态下进行 TCP 连接后,使用 AT+CIPCLOSE=1 可强制断开连接,立刻返回
CLOSE OK。而默认时会和服务器进行 TCP 断开的交互,返回 CLOSE OK 较长,但是适用
于稳定的网络环境。 
在多连接状态下,可以使用 AT+CIPCLOSE=,1 实现这个强制断开连接功能。 
 
12.  CIPACK 功能命令 
AT+CIPACK 
 
 
+CIPACK: 29, 29, 0   
//第 1 个参数表示 TCP 发送了 29 字节,第 2 个参数表示远端收到了 29 个字节。第 3 个
参数表示非被远端确认的字节数。 
 
 
OK 
 
13.  CIPHEAD 和 CIPSHOWTP 功能命令 
AT+CIPSHOWTP=1 
OK 
AT+CIPHEAD=1 
 
 
 
 
 
//显示连接协议 
//显示数据头 
OK 
AT+CIPSTART="TCP","116.228.221.51",5555 
OK 
CONNECT OK 
+IPD,17,TCP:SIM900 TCP TEST // 当收到数据后,显示+IPD,数据长度,协议 
AT+CIPSHOWTP=0 
OK 
//关闭显示协议 
 
 
 
 
 
 
 
 
+IPD,18:SIM900 TCP TEST2  
 
14.  CIPSRIP 功能命令 
//只显示+IPD,数据长度 
AT+CIPSRIP=1 
 
 
 
//设置收到数据后显示远端 IP 和端口 
 
 
 
OK 
RECV FROM:116.228.221.51:5555 
//显示远端 IP 和端口号 
+IPD,18:SIM900 TCP TEST2  
  
 
15.  CIPQSEND 功能命令 
 
 
 
//设置成 QSEND 模式 
AT+CIPQSEND=1   
 
OK 
AT+CIPSEND 
 
> HELLO 
 
DATA ACCEPT:5   
//5 个字节发送数据已经被 SIM900 接收,进入发送状态,客户可以继续使用 CIPSEND 发
送。但是发送成功被远端确认后不再显示 SEND OK 
 
 
 
16.  CDNSGIP 功能命令 
AT+CDNSGIP="WWW.SIM.COM" 
OK 
 
+CDNSGIP: 1,"WWW.SIM.COM","58.32.231.146"   
//DNS 解析成功,WWW.SIM.COM 的 IP 为 58.32.231.146 
AT+CDNSGIP="abctest" 
 
OK 
+CDNSGIP: 0,11 
 
//DNS 解析失败,失败原因为 11 
17.  直接使用域名进行连接。 
AT+CIPSTART="TCP","WWW.SIM.COM",80 
 
OK 
 
CONNECT OK