SIM868——GPRS除錯之公網IP埠無法對映的解決方法
【基於公網IP對映埠】:我們做SIM868模組除錯GPRS資料傳輸功能的時候,往往會利用公網IP地址進行資料傳輸,大致步驟是:
1)先查詢公網IP(百度查IP或者通過路由器查詢WAN口IP);
2)再查詢自己電腦內網IP(方法很多);
3)登入路由器控制介面,設定虛擬伺服器,寫入內網IP及埠號;
4)利用TCP/UDP Socket工具建立伺服器,監聽對應的埠,這時就可以進行GPRS模組和對應本地電腦的資料傳輸了;
5)GPRS模組端串列埠連線電腦,利用串列埠除錯助手進行的AT命令控制(無括號備註,均需勾選“傳送新行”):
AT+CSQ //查詢網路訊號質量
AT+CREG? //查詢網路註冊情況
AT+CGATT? //查詢模組是否附著 GPRS 網路
AT+CSTT=“CMNET” //根據實際網路設定 APN,這裡為移動
AT+CIICR //啟用移動場景
AT+CIFSR //獲得本地 IP 地址
AT+CIPSTART=“TCP”,“113.0.80.201”,3389 //建立 TCP/IP 連線 // 測試時公網動態 IP:113.0.80.201
AT+CIPSEND(出現>後,去掉 “傳送新行”,再寫要傳送的資料)
1A(16進位制傳送)
以上便可以實現GPRS的資料傳輸,在串列埠除錯助手與TCP/UDP Socket 工具間可看到資料傳輸。
【問題】:以上是在百度查到的公網IP及路由器查到WAN IP一致的情況下實現的,但是會存在查詢結果不一致的情況(現在外網地址不夠用,所以很多運營商都將使用者設為內網),如移動、鐵通等使用者,這種情況下無法用上述設定路由器 虛擬伺服器的方法實現埠對映,這時候該怎麼破?
【解決辦法】:利用花生殼的內網穿透功能實現(我絕對不是給它做廣告的,只是確實好用~ :) )
下載花生殼軟體,並註冊,在內網穿透中新增對映:
這時候記住外網訪問地址及內網主機地址,接著重複上述的步驟5),只是把:
AT+CIPSTART=“TCP”,“113.0.80.201”,3389 IP地址修改為花生殼中內網穿透的“外網地址”,埠號設為同樣的就OK了;
【注意】:
1、這裡的“外網地址”是在註冊花生殼時免費提供給你的域名;
2、使用花生殼內網穿透的好處不僅是解決公網埠無法對映的問題,還解決了公網IP變化的問題(動態IP分配導致的變化,對應用者而言,公網IP變化,原來燒進MCU中的程式就要重新改變,否則無法使用);