2017-05-19 41 views
0

我正在學習Python套接字。如果我有一個帶有公共IP的服務器,我的電腦和服務器可以很容易地使用TCP連接。但是,如果不同局域網中的兩臺電腦沒有公共IP,我該如何連接它們?如何建立沒有公共IP的兩臺計算機之間的cconnection

+0

也許藍牙? – GeneCode

+0

我正在開發一個網絡軟件,因此有必要使用像TCP這樣的網絡編程來連接它們。 –

+0

然後將您的服務器託管在雲中並使用該IP。 – Enzokie

回答

1

簡短答案是「使用NAT穿越技術」。

長的答案。

這裏的主要問題是:

  • 當你建立連接,你真的不知道什麼IP地址連接。
  • NAT並不像您所期望的那樣工作(關閉地址轉換綁定,不接受從某些意外地址發送的數據包等)。

第一個問題可以通過所謂的STUN服務器來解決,它可以讓你回到你的公共IP地址。

第二個問題比較複雜,一般沒有服務器使用公網IP地址就無法解決。您可以查看「Interactive Connectivity Establishment」規範以查看示例如何在VOIP系統中解決此問題。

總而言之一句話,你可以嘗試使用由STUN協議得到了公共地址,但如果它不工作,你需要退回到服務器的公網IP(如TURN服務器)

相關問題