2011-12-23 100 views
0

這是我的第一個問題,在搜索和閱讀很多地方之後,我沒有選擇,只能問。 我有一個從GPS設備接收數據並存儲在數據庫中的C#應用​​程序,現在我需要發送一個字符串,其中包含設備應解釋的命令。 該設備通過GPRS連接到互聯網,我不知道如何通過GPRS通過GPRS發送此數據包,因爲IP是動態的。從服務器發送數據到GPS設備

我希望有關於如何解決此問題的任何建議或想法。

此致敬禮。

回答

1

你應該反過來 - 設備應輪詢服務器的指示。只要確保服務器可以訪問。

0

正如您已經指定您開發了一個C#應用程序來通過GPRS讀取GPS數據,這意味着您正在公共/靜態IP上運行C#應用程序。 Nwo只要您收到來自GPRS客戶端的請求,您也會獲得遠程端點的DHCP IP地址。 打開端點和套接字後,您可以將任何數據傳回GPS設備。

假設你的GPS設備有一些微控制器來驅動GSM/GPRS調制解調器。

0

我打算在這裏假設'設備'是連接到標準GSM網絡的某種手機嗎?

如果是這樣,那麼故事的簡短版本是「忘記它」,即使IP不是動態的,你根本就不會與設備的IP通話,你實際上正在與之通話您的提供商GGSN的IP地址,而對於標準的消費者連接,這將成爲降價停止的地方。現在說,如果你有預算,並且你所有的設備(假設有多個)使用同一個運營商,那麼你可以接近運營商並請求一個專用的APN(接入點名稱)是等同於DNS記錄的移動網絡,或者至少類似於使用這種類比。

當你在你的設備上設置你的數據連接時,你可能會記得不得不輸入像'pp.vodafone.com'或'INGhub411.o2-uk.inbound'這樣的實際APN,如果你有一個自定義的,他們可以設置你的設備,使得在GGSN上呈現的IP實際上具有返回到供應商GSM網絡中的單個設備的靜態路由。

作爲一般經驗法則,在消費級別連接中,這不是啓用的,因此單個設備沒有入口可用。

正如zmbq所說,你所擁有的唯一選擇是讓設備定期輪詢服務器,不幸的是,這對電池來說是非常無情的。

當然還有一種方法可以解決這個問題,那就是讓設備直接向服務器打開一個套接字,然後將該套接字打開。一旦套接字打開,可以在整個鏈接上執行雙向通信,不幸的是,您還必須編寫所有代碼來管理此連接,包括但不限於監視連接以確保它仍然處於打開狀態並重新建立連接如果不是這樣,那麼這對移動設備來說非常重要。

相關問題