2013-09-30 51 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连接处于活动状态,以加快通信速度;但这是基础知识。

当客户确定某些端口开放进行通信或代理服务器不会干扰流量时,甚至有直接对话的方式。然而,这比这里提供的一个简单的“答案”更先进一点。