2013-09-30 56 views
1

我用cockets編寫了帶有套接字的Messenger,但是我的端口問題很少。爲了清除通信,我必須在我的信使中使用的路由器上打開端口。如何解決這個問題?方法是自動打開默認關閉端口?Messenger默認關閉的端口

謝謝。

回答

1

有幾件事你可以做。

首先是更改應用程序的編程,以便它使用常規http端口(80)進行通信。這將允許你的應用在任何地方進行呼出呼叫。

或者,您可以使用從49152到65535的高端口號。(請參閱Assigning TCP/IP Ports for In-House Application Use)。


但是,這取決於你在哪裏部署應用程序很可能是所有這些端口都通過防火牆阻塞;並且都不能解決您的問題

由於防火牆問題,大多數信使類型的應用程序不能直接。例如,即使您使用端口80,其可能的客戶端計算機也會將該端口阻塞,以阻止傳入的 TCP請求。

相反,它們通常連接到已知的公共服務器。當一個客戶端希望連接到另一個客戶端時,服務器將在兩個客戶端之間路由消息。一個非常簡化的看法是:客戶端A向客戶端B的服務器發送通信請求。客戶端B輪詢服務器的消息,看到消息並在桌面上顯示。

有幾種方法可以保持客戶端和服務器之間的TCP連接處於活動狀態,以加快通信速度;但這是基礎知識。

當客戶確定某些端口開放進行通信或代理服務器不會干擾流量時,甚至有直接對話的方式。然而,這比這裏提供的一個簡單的「答案」更先進一點。