2011-03-13 66 views
0

目前,我有作爲客戶端的移動用戶,他們可以通過該計算機上運行的服務器連接到他們的家庭計算機。考慮添加中介的TCP客戶端/服務器

問題是,動態IP地址和端口轉發存在問題。

我想過NAT穿越,但這在所有情況下都不起作用。

理想情況下,我希望他們只需在移動應用中輸入用戶名和密碼,並將其作爲啓動時服務器的參數,並讓他們與我在其他地方託管的中介服務器進行通信。這樣他們就不必擔心這些。

問題是,他們的運行服務器不知道在這種情況下移動應用程序何時請求信息,或者回應什麼。

所以我正在尋找實施建議或替代方案。真的,任何東西將不勝感激。

+1

如果家庭計算機連接到其他地方託管的服務器,則可以保留該連接,並且每當移動應用程序與其通信時,它都會向家用計算機發送消息,因爲連接應該是隻要家庭用戶正在運行該程序,就一直存在。沒有? – Omar 2011-03-13 06:59:13

+0

這就是我最終做的。感謝恐懼。 – 2011-07-01 14:35:34

+0

不客氣。很高興有幫助。也許我應該把評論作​​爲答案,以便你可以接受它作爲答案。 – Omar 2011-07-14 00:37:24

回答

0

如果我正確地理解了這個問題,客戶端想要聯繫到位於NAT設備後面的家庭計算機。如果是這樣,這是VoIP技術的常見問題。有一些可以依靠的方法來解決動態IP地址和NAT。特別爲了解決NAT問題,基於UDP Hole Punching的兩種技術分別是STUNICE

如果您的解決方案不適用於VoIP,您仍然可以使用UDP Hole Punching技術與NAT後面的計算機實現實時連接 - 而且您不必擁有STUN/ICE服務器,但您將不得不瞭解NAT /路由以及不同類型的NAT設備。

0

當服務器和客戶端位於防火牆/路由器之後時,或者當客戶端位於動態IP且服務器位於防火牆/路由器之後時,打孔非常不值錢。

按照您的建議使用中間人服務器是正確的方法。而且我不太瞭解這個問題。讓用戶在您的服務器上註冊一個帳戶,並讓他在本地服務器和電話中指定該帳戶。然後讓本地服務器和手機都使用提供的帳戶連接到您的服務器。

這樣做你的互聯網服務器知道哪個本地服務器轉發電話請求。

0

如果家庭計算機連接到其他地方託管的服務器,則可以保留該連接,並且每當移動應用程序與其通信時,它都會向家用計算機發送消息,因爲連接應該只要家庭用戶正在運行該程序,他就活着。