2016-04-19 79 views
1

我有一種情況,桌面應用程序(c#)客戶端需要接收來自服務器的連接。爲避免強制客戶端在其NAT中打開端口,有人建議使用由客戶端啓動的http持久連接。我不確定這是正確的解決方案,但它似乎有點濫用這個HTTP擴展。這是這個解決方案好還是有更好的選擇,我應該看看呢?使用http持久連接而不是套接字

+0

要通過NAT接收入站連接,必須在NAT上打開端口並映射到目標PC。如果在NAT上啓用了uPNP,則該端口可以被目標應用程序可編程地打開和映射,否則NAT管理員必須打開該端口。另一種選擇是建立一個出站連接。它不必位於HTTP端口上(儘管這是最常用的端口,因爲大多數NAT /防火牆允許出站連接到端口80以允許Web瀏覽器流量),並且接收服務器不必是HTTP服務器。 –

+0

* Facepalm,對。我可能正在過度這個 – Eric

+0

Btw你的評論是好的作爲答案 – Eric

回答

2

要通過NAT接收入站連接,必須在NAT上打開端口並映射到目標PC的IP地址。如果在NAT上啓用了uPNP,則可以通過目標應用程序打開和映射端口,否則NAT管理員必須打開該端口。

另一種選擇是製作一個出站連接。它不必位於HTTP端口(除非NAT被管理員鎖定),儘管這是最常用的端口,因爲大多數NAT /防火牆允許出站連接到端口80以允許Web瀏覽器流量。接收服務器不一定是一個真正的HTTP服務器。