Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器缓解P2P连接_C#_.net_Windows_Winforms_Pnrp - Fatal编程技术网

C# 服务器缓解P2P连接

C# 服务器缓解P2P连接,c#,.net,windows,winforms,pnrp,C#,.net,Windows,Winforms,Pnrp,我正在用C编写一个系统,它由一个桌面应用程序组成,我称之为通过internet连接到多个客户端应用程序的主机。无论客户端应用程序是否正在运行,主机至少应该能够检索状态信息,并向客户端计算机发送文件。客户端计算机不必相互查看或通信。客户端应用程序将全天候运行,但主机应用程序将仅在用户希望检查运行客户端应用程序的PC时运行 我对微软的PNRP做了相当多的阅读,并认为我将使用基于此的系统来缓解主机和客户端之间的连接,即每个客户端应用程序检测到WAN IP变化,并向我拥有的linux服务器报告其新IP。

我正在用C编写一个系统,它由一个桌面应用程序组成,我称之为通过internet连接到多个客户端应用程序的主机。无论客户端应用程序是否正在运行,主机至少应该能够检索状态信息,并向客户端计算机发送文件。客户端计算机不必相互查看或通信。客户端应用程序将全天候运行,但主机应用程序将仅在用户希望检查运行客户端应用程序的PC时运行

我对微软的PNRP做了相当多的阅读,并认为我将使用基于此的系统来缓解主机和客户端之间的连接,即每个客户端应用程序检测到WAN IP变化,并向我拥有的linux服务器报告其新IP。当主机应用程序想要连接时,它将连接到服务器,进行身份验证,并获取客户端应用程序的WAN IP列表

从这里,我想直接从主机应用程序连接到每个客户端应用程序。为了减轻服务器上的负载,我不想通过服务器发送文件或状态信息。最好的方法是什么?每个客户端应用程序可能位于防火墙、NAT等之后,我将无法手动向前移植,尽管我可以在其工作时使用uPnP


PS-您有什么建议的PNRP替代方案吗?我会直接使用PNRP,除了1出于安全原因,我需要使用我自己的种子服务器linux而不是microsoft PNRP种子服务器,据我所知,PNRP仅适用于windows,2 PNRP仅适用于ipv6,网络和ISP可能并不总是支持ipv6。

TCP套接字,但它被防火墙阻止。