【问题标题】:Port Forwarding Issues in C#C# 中的端口转发问题
【发布时间】:2012-11-15 16:28:33
【问题描述】:

我正在尝试为学校作业制作一个简单的聊天客户端应用程序。

但是数据包被路由器阻止了。有人建议我使用 UPNP 转发端口,但问题是由于安全问题,我认为我不能使用这样的程序。

是否有任何替代 UPNP 用于端口转发的替代方案,可以在学校环境中使用,如果我使用 UDP 而不是 TCP,我仍然需要转发端口。

最后我只是想实现一个简单的互联网消息传输。

添加:我忘了提到我作为项目的约束,我不能使用任何非微软的东西。

【问题讨论】:

  • 也许您应该在某个地方运行服务器,并通过非阻塞端口进行通信?
  • @ChadRuppert 我不知道。我需要一个信使类型的应用程序。
  • 如果您需要帮助弄清楚您的作业是什么而不是至少发布学校名称/老师的名字...考虑在尝试实施之前了解您的作业是什么。 .

标签: c# .net sockets networking network-programming


【解决方案1】:

端口转发与 C# 或 .NET 无关 - 它是路由器的一项功能,可通过特定端口将外部连接转发到网络上的内部地址。

端口转发通常是 TCP/ip 套接字(远程处理)的问题。 Web 服务通常不是问题,它们使用标准协议并通过浏览器使用的端口 80。

如果端口转发是个问题,也许您应该从 TCP/IP 切换到 WebServices 以作为您的通信解决方案。

【讨论】:

  • 谢谢,我会做进一步的研究。
【解决方案2】:

在 MSNMessager 和 Skype 等应用程序中,您有两个应用程序正在运行。第一个是您在本地计算机上运行的客户端,第二个是在提供商网络上运行的服务器。大多数防火墙仅阻止入站连接请求,并允许所有出站请求未经过滤。这并不总是正确的,但在大多数情况下确实如此。客户端应用程序将创建出站到服务器的连接,因此不受防火墙限制。

MSNMessager 不直接连接到另一个客户端,而是由服务器应用程序处理和转发。一旦通过 TCP 连接,您将保持连接,直到您决定断开连接。一旦连接,就可以在客户端和它所连接的服务器之间进行双向通信。

希望对你有帮助

【讨论】:

    【解决方案3】:

    如果您完全位于计算机本地,则通常不会通过防火墙,因此这应该不是问题。如果您需要与不同的机器交谈,您的网络管理员可能需要在防火墙上为您打开一个洞。与您的老师讨论该问题;也许已经为此目的打开了一个端口,或者他不希望您首先需要绕过防火墙。

    如果问题基本上是“我如何绕过学校的防火墙”,那么我的答案是“不要”。那将是一个恶意应用程序。

    【讨论】:

    • 它不是恶意应用程序,它是一个聊天客户端,我需要向我的老师展示它允许通过互联网进行通信。我的老师在这个问题上不合作。他说该应用程序必须在学校环境中运行。你的意思是不管使用什么协议,我仍然需要与防火墙抗衡?
    • @WinCoder 我的意思是,如果您的应用程序不是恶意的,那么您一开始就不需要绕过防火墙。如果您说您必须 破解您的防火墙,那么它 是恶意的。我非常怀疑你的老师会给你一个要求你做学校防火墙禁止的事情的作业。 do you mean that regardless of the protocol used i will still have the firewall to contend with? 不知道你们学校的防火墙的实现,我不能说。你的老师应该告诉你他对你的期望。
    • 我只是想知道 Skype 或 yahoo messenger 或 teamviewer 等应用程序使用什么样的技术进行通信。因为在大多数情况下,它们不需要用户干预进行设置。他们会自动完成,我也想这样做。
    • @WinCoder 实际上,当您使用这些应用程序时,您的防火墙通常会提示您允许访问这些应用程序。对于许多人的家用电脑来说,他们甚至没有防火墙。对于学校环境,他们通常会打开那些常用应用程序使用的端口,以期待它们被使用。同样,这里的重点是找到您学校的防火墙已经打开的端口,而不是在防火墙试图阻止您时绕过防火墙。
    • 要么在同一台 PC 上运行客户端和服务器,要么构建一个 VM 并在其上运行服务器。如果您没有防火墙,它仍然可以在 Internet 上运行。我能看到的唯一其他选择是使用防火墙没有阻止的端口。例如,只要服务器不是网络服务器,就没有理由不能在端口 80 上进行通信。
    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多