-1

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

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

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

最后,我只想通过互联网实现简单的消息传输。

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

4

3 回答 3

4

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

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

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

于 2012-11-15T16:37:53.933 回答
3

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

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

我希望这有帮助

于 2012-11-15T18:39:32.520 回答
2

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

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

于 2012-11-15T16:33:02.757 回答