2014-10-17 124 views
0

公網IP和端口我背後有NAT和服務器的客戶,誰可以訪問此計算機怎麼知道後面NAT

是這樣的:

local ip external ip IPe 
       external port Pe 
C --------- | ----------------- S 
      NAT 

我想s到知道的C IPE和Pe用於在這兩者之間傳輸

我該怎麼辦?

我使用python

回答

0

如果S服務器,然後就去做

conn, addr = s.accept() 

如果C不知道大約爲S 什麼這是給你解決問題的方法:您應該使用中間服務器來解決您的通信問題。

  1. C連接到服務器併發送其外部端口號( IPe被服務器自動識別)。
  2. 服務器商店IPe和Pe。
  3. S向服務器請求C並獲取IPe和Pe。
  4. 則S可以通過其自身的

要求聯繫C:

  • TCP連接
  • S和C是客戶
  • 中間服務器

注意:祕密是tha C和S都知道服務器。

+0

這正是我所擁有的。 如果我是我的中間服務器 C如何將他的外部端口號發送給I? 之後,我可以如何儲存IPe? 我也在Python – Quentin 2014-10-17 09:38:28

+0

在S上,當C連接你應該有:'conn,addr = s.accept()'。 所以你有'addr',它包含了ip和C的端口。 – Kursion 2014-10-17 09:40:10