如何去建立一個(gè)TCP客戶(hù)端連接:
首先,在任何TCP / UDP的相關(guān)操作之前設(shè)置模塊應(yīng)連接到GSM或GPRS網(wǎng)絡(luò)。
用戶(hù)可以使用命令“AT+ CREG?”和“AT+ CGATT?”查詢(xún)GSM網(wǎng)絡(luò)注冊(cè)狀態(tài)的模塊是否已連接到GPRS服務(wù)。
AT+CPIN? //查詢(xún)PIN
+CPIN:READY //MT不需要任何密碼
OK
AT+CSQ=? //信號(hào)質(zhì)量查詢(xún)
+CSQ:20,0 //來(lái)自ME的接收信號(hào)強(qiáng)度指示和信道誤碼率
OK
AT+CREG? //查詢(xún)網(wǎng)絡(luò)注冊(cè)信息
+CREG:0,1 //關(guān)閉顯示網(wǎng)絡(luò)注冊(cè)未知結(jié)果碼,注冊(cè)的,歸屬網(wǎng)絡(luò)
OK
AT+CGATT? //查詢(xún)附著和分離GPRS業(yè)務(wù)
+CGATT:1 //附著狀態(tài)
OK
其次,用戶(hù)應(yīng)該使用命令組AT+ CSTT,AT+ CIICR和AT+ CIFSR啟動(dòng)任務(wù),激活無(wú)線(xiàn)連接。
最后,用戶(hù)可以通過(guò)AT命令(AT + CIPSTART=“TCP”,“IP服務(wù)器的地址”,“服務(wù)器的端口號(hào)”)建立SIM900和服務(wù)器之間的TCP連接。
如果連接成功建立,將會(huì)從模塊返回響應(yīng)“CONNECT OK”。
現(xiàn)在,用戶(hù)可以用“AT + CIPSEND”命令將數(shù)據(jù)發(fā)送到服務(wù)器。
“AT+ CIPSEND”將返回推進(jìn)符號(hào)“》”,用戶(hù)應(yīng)在“》”然后發(fā)出CTRL+ Z(0x1A的)發(fā)送數(shù)據(jù)寫(xiě)入。
如果發(fā)送成功,它
會(huì)回應(yīng)“SEND OK”。
如果有數(shù)據(jù)來(lái)自服務(wù)器,模塊將自動(dòng)從串行端口接收的數(shù)據(jù)。
用戶(hù)可以關(guān)閉與“AT+ CIPCLOSE”命令的TCP連接。
下面是TCP連接到遠(yuǎn)程服務(wù)器的一個(gè)例子。
AT+CGATT? //查詢(xún)附著和分離GPRS業(yè)務(wù)
+CGATT:1 //附著狀態(tài)
OK
AT+CSTT=“CMNET”//啟動(dòng)任務(wù)并設(shè)置接入點(diǎn)APN、用戶(hù)名、密碼
OK
AT+CIICR //打開(kāi)無(wú)線(xiàn)連接(GPRS 或者 CSD)
OK
AT+CIFSR //獲取本地IP地址
10.78.245.128
AT+CIPSTART=“TCP”,“116.228.221.51”,“8500”//建立TCP連接或注冊(cè)UDP端口號(hào)
OK //格式正確
CONNECT OK //說(shuō)明TCP連接已經(jīng)成功建立
AT+CIPSEND //發(fā)送數(shù)據(jù)
》 hello TCP sever//
SEND OK //數(shù)據(jù)發(fā)送成功
hello sim900 //服務(wù)器返回?cái)?shù)據(jù)
CLOSED //服務(wù)器斷開(kāi)連接
如何建立一個(gè)UDP客戶(hù)端連接
AT+CGATT? //查詢(xún)附著和分離GPRS業(yè)務(wù)
+CGATT:1 //附著狀態(tài)
OK
AT+CSTT=“CMNET”//啟動(dòng)任務(wù)并設(shè)置接入點(diǎn)APN、用戶(hù)名、密碼
OK
AT+CIICR //打開(kāi)無(wú)線(xiàn)連接(GPRS 或者 CSD)
OK
AT+CIFSR //獲取本地IP地址
10.77.65.18
AT+CIPSTART=“UDP”,“116,228,221.51”,“9600”//建立UDP連接,遠(yuǎn)端IP地址,遠(yuǎn)端服務(wù)端口號(hào)
CONNECT OK //UDP連接成功建立
AT+CIPSEND
》 sim900 UDP test
SEND OK //只知道數(shù)據(jù)已經(jīng)從端口發(fā)送出去,但不知道數(shù)據(jù)是否已經(jīng)到達(dá)服務(wù)器
UDP test
AT+CIPCLOSE
CLOSE OK
如何建立一個(gè)TCP連接服務(wù)器
在單一連接模式下,當(dāng)配置為T(mén)CP服務(wù)器,SIM900只允許一個(gè)客戶(hù)端連接進(jìn)來(lái)。
用戶(hù)應(yīng)該使用命令“AT+ CIPSERVER=1,”《port》“啟動(dòng)服務(wù)器功能,并設(shè)置監(jiān)聽(tīng)端口。
如果成功的話(huà),將返回響應(yīng)“SERVER OK”,而現(xiàn)在服務(wù)器開(kāi)始監(jiān)聽(tīng)TCP端口。
然后,用戶(hù)應(yīng)使用命令“AT+ CIFSR”來(lái)獲取本地IP地址,這是服務(wù)器的IP地址。
如果客戶(hù)端連接到服務(wù)器成功,遠(yuǎn)程客戶(hù)端的IP地址將在服務(wù)器這邊被顯示。
并且服務(wù)器可以從遠(yuǎn)程端接收的TCP數(shù)據(jù)。
用戶(hù)還可以使用命令A(yù)T + CIPSEND將數(shù)據(jù)發(fā)送到遠(yuǎn)程客戶(hù)端。
用戶(hù)也可以使用“AT+ CIPSERVER=0”關(guān)閉監(jiān)聽(tīng)狀態(tài)。此外,用戶(hù)可以使用AT+ CIPCLOSE關(guān)閉TCP連接。
AT+CGATT? //查詢(xún)附著和分離GPRS業(yè)務(wù)
+CGATT:1 //附著狀態(tài)
OK
AT+CIPSERVER=1,1234 //開(kāi)啟服務(wù)器配置,端口號(hào)1234
OK
SERVER OK //TCP服務(wù)器已經(jīng)成功建立
AT+CIFSR //獲取本地地址
10.78.33.227
AT+CIPSTATUS
OK
STATE:SERVER LISTENING //查詢(xún)當(dāng)前狀態(tài):監(jiān)聽(tīng)
REMOTE IP:10.78.103.220 //接入遠(yuǎn)程客戶(hù)端
hello server //接收到遠(yuǎn)程客戶(hù)端的數(shù)據(jù)
AT+CIPSEND
》hello client //向遠(yuǎn)程客戶(hù)端發(fā)送數(shù)據(jù)
SEND OK
AT + CIPSERVER = 0 //關(guān)閉當(dāng)前監(jiān)聽(tīng)狀態(tài)
OK
SERVER CLOSE
hello sim900
AT+CIPCLOSE //關(guān)閉TCP或UDP連接
CLOSE OK
UDP擴(kuò)展模式
在UDP擴(kuò)展模式下,SIM900能接收到來(lái)自UDP數(shù)據(jù)
AT+CGATT? //查詢(xún)
附著和分離GPRS業(yè)務(wù)
+CGATT:1 //附著狀態(tài)
OK
AT+CSTT //啟動(dòng)任務(wù)并設(shè)置接入點(diǎn)APN、用戶(hù)名、密碼
OK
AT+CIICR //打開(kāi)無(wú)線(xiàn)連接(GPRS 或者 CSD)
OK
AT+CIFSR //獲取本地IP地址
10.92.17.107
AT+CLPORT=“UDP”,8888 //設(shè)置本地UDP端口
OK
AT+CIPSRIP=1 //顯示發(fā)送方的IP地址和端口號(hào)
OK
AT+CIPHEAD=1 //設(shè)置IP頭,格式“+IDP,data length:”
OK
AT+CIPUDPMODE=1 //設(shè)置UDP擴(kuò)展模式
OK
AT+CIPSTART=“UDP”,“116.228.221.51”,9600 //啟動(dòng)UDP與遠(yuǎn)端服務(wù)器的連接
OK
CONNECT OK
AT+CIPUDPMODE?
+CIPUDPMODE:1,“116.228.221.51”,9600
OK
RECV FROM: 116.228.221.51:9600 //接收來(lái)自不同IP地址和端口的數(shù)據(jù)
+IPD,5,test1
RECV FROM: 116.228.221.51:1234
+IPD,5,test2
RECV FROM:10.78.103.220:5678
+IPD,5:test3
AT+CIPSEND
》 Hello 9600
SEND OK
AT+CIPUDPMODE=2,“211.136.131.65”,4500
OK
AT+CIPUDPMODE?
+CIPUDPMODE:1,“211.136.131.65”,4500
OK
AT+CIPSEND
》Hello 4500
SEND OK
評(píng)論
查看更多