我需要通过p2p在互联网上开发一个文件共享应用程序。我对开发基于p2p的应用程序有非常粗略的想法。
假设我有一台服务器有一个静态IP,它运行在特定端口,如5001.现在客户端连接到服务器并发送自己的公共IP。
在C#的帮助下,客户端如何连接服务器并发送自己的公共IP? 指导我需要使用哪个班级?
当服务器从客户端获取IP时,它将存储。因此,当两个客户端连接时,服务器具有两个不同PC的IP信息。 PC1将请求服务器获取PC2的IP,同样PC2将请求获取PC1的IP。所以现在PC1& PC2都拥有彼此的IP。
现在的问题是PC1如何连接PC2我需要写哪些代码进行连接?
现在的问题是,如果PC1可以连接到PC2,那么PC1如何将文件发送到PC2?
请告诉我为了开发这种基于P2P的文件共享应用程序需要使用哪个类。
答案 0 :(得分:0)
说到peer2peer,你总是需要至少一台启用了端口转发功能的PC。这意味着,如果您在pc1上有一个监听器/服务器而在pc2上有一个客户端,那么您需要在pc1上进行端口转发。
这通常称为HighID / LowID,是几乎每个路由器中实现的NAT防火墙的症状。如果没有至少一个端口转发,则两台PC无法连接。这是因为除非有转发,否则路由器不知道映射到传入TCP数据包的本地IP。
您可以使用哪些课程:查看System.Net.TcpClient
和System.Net.TcpListener