1

我在 c# 中使用套接字编写了 messenger,但我对端口没有什么问题。为了清除通信,我必须打开我在信使中使用的路由器上的端口。如何解决这个问题?是自动打开默认关闭端口的方法吗?

谢谢。

4

1 回答 1

1

您可以做几件事。

首先是更改应用程序的编程,使其使用常规的 http 端口 (80) 进行通信。这将使您的应用程序几乎可以在任何地方进行出站呼叫。

或者,您可以使用从 49152 到 65535 的高端口号。(请参阅分配 TCP/IP 端口以供内部应用程序使用)。


但是,根据您部署应用程序的位置,很可能所有这些端口都被防火墙阻止;也不会解决你的问题

由于防火墙问题,大多数信使类型的应用程序无法直接运行。例如,即使您使用端口 80,客户端计算机也可能会阻止该端口以接收传入的TCP 请求。

相反,它们通常连接到已知的公共服务器。当一个客户端希望连接到另一个客户端时,服务器将在两个客户端之间路由消息。一个非常简单的看法是:客户端 A 向客户端 B 的服务器发送通信请求。客户端 B 轮询服务器以获取消息,看到一条并将其显示在桌面上。

有一些方法可以使客户端和服务器之间的 TCP 连接保持活动状态,以加快通信速度;但这是基础。

当客户端确定某些端口已打开以进行通信或代理服务器不会干扰流量时,客户端甚至可以直接相互通信。但是,这比这里提供的简单“答案”要先进一些。

于 2013-09-30T21:58:33.837 回答