需要概念来开发使用 c# 4.0 的 p2p 文件共享应用程序

本文关键字:p2p 应用程序 文件共享 开发 | 更新日期: 2023-09-27 18:31:41

我需要通过p2p在互联网上开发文件共享应用程序。我对开发基于p2p的应用程序有非常粗略的想法。

假设我有一台服务器,它有一个静态 IP,该 IP 在特定端口(如 5001)上运行。现在客户端连接到服务器并发送自己的公共 IP。

问题 1

在 C# 的帮助下,客户端如何连接到服务器并发送自己的公共 IP?指导我需要使用哪个类?

当服务器从客户端获取IP时,它将存储。因此,当两个客户端连接时,服务器具有两台不同PC的IP信息.PC1将请求服务器获取PC2的IP,并且PC2将请求获取PC1的IP。所以现在PC1和PC2都有对方的IP。

问题2

现在的问题是 PC1 如何连接到 PC2 我需要编写哪些代码才能连接?

问题3

现在的问题是,如果 PC1 可以连接到 PC2,那么 PC1 如何将文件发送到 PC2 ?

请告诉我我需要使用哪个类来开发这种类型的基于 P2P 的文件共享应用程序。

需要概念来开发使用 c# 4.0 的 p2p 文件共享应用程序

当涉及到peer2peer时,您始终需要至少一台启用了端口转发的PC。这意味着,如果您在 pc1 上有一个侦听器/服务器,在 pc2 上有一个客户端,您将需要在 pc1 上有一个端口转发。

这通常称为HighID/LowID,并且是几乎每个路由器中实施的NAT防火墙的症状。如果没有至少一个端口转发,则无法连接两台 PC。这是因为路由器不知道要映射到传入 TCP 数据包的本地 IP,除非有转发。

至于你可以使用什么类:看看System.Net.TcpClientSystem.Net.TcpListener