2014-05-06 56 views
1

我想創建一個應用程序,使用網絡服務器將電子郵件和消息直接發送到其他客戶端,使用Web服務器維護在線客戶端列表,其中客戶端將讀取NAT發送的IPPort該列表直接連接到命運客戶端。如何通過HTTP從NAT中獲取客戶端IP和端口?

是否可以在HTTP Web服務器中接收此信息?我該怎麼做?或者我可以只使用UDP服務器(UDP Hole Punch)?

東西像原始的Skype,但與網絡服務器。

回答

3

你不能。

從「外部」NAT作爲您唯一的客戶端,您只知道其(NAT)源IP和(不一定)源端口。

+0

但是,如果目的地想要回復發件人呢?如果它不知道發件人的端口,那麼NAT可能會將答案發送給正確的本地計算機? – PSyLoCKe

+0

@EASI:如果您使用tcp/ip,則可以使用建立的連接發送響應。因此,您正在響應NAT,然後NAT使用其自己的映射表將數據包轉發給原始客戶端。 – zerkms

+0

謝謝,但我怎麼能得到這兩個信息?我想在轉向自定義服務器之前測試這種可能性。對於IP,它是'$ _SERVER ['REMOTE_ADDR']',但端口怎麼樣? – PSyLoCKe

相關問題