【问题标题】:Messenger default closed portsMessenger 默认关闭端口
【发布时间】:2013-10-01 05:58:33
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: c# sockets


    【解决方案1】:

    您可以做几件事。

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

    或者,您可以使用从 49152 到 65535 的高端口号。(请参阅Assigning TCP/IP Ports for In-House Application Use)。


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

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

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

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

    当客户端确定某些端口可用于通信或代理服务器不会干扰流量时,它们甚至可以通过多种方式直接相互通信。但是,这比这里提供的简单“答案”要高级一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-31
      • 2011-09-10
      • 2018-09-18
      • 1970-01-01
      • 2012-06-03
      • 2014-02-08
      • 2016-06-03
      • 1970-01-01
      相关资源
      最近更新 更多