没有路由问题的C#远程桌面

时间:2018-03-12 12:17:01

标签: c# client-server remote-access tcpclient p2p

最近使用一种流行的软件来远程访问我的工作计算机(我拥有公司 - 这都是合法的......),我有兴趣在我自己的C#程序中实现类似的远程桌面功能,目前用于业余爱好,但如果成功,可以在工作中找到用途。

我正在使用TcpClient和TcpListener并创建了一个侦听和接受连接的服务器。基本上我有一个客户端 - 服务器聊天系统工作。客户端最初都会登录到服务器并使用加密的TCP通信。

对于文件传输和屏幕截图,我真的希望客户端直接通信(否则文件必须发送到客户端 - >服务器 - >客户端)。我只是想知道商业软件是否有办法在没有最终用户设置路由器和防火墙规则的情况下实现这一目标?

一旦两个客户端都“拨出”到服务器,那么有没有一种方法可以获得直接客户端(点对点)通信,而无需先将所有内容发送到服务器?

我有光纤宽带,所以没有带宽问题。我的所有文件进行两次旅行似乎有点浪费(特别是如果服务器是远程的,但是两个客户端都在局域网上)。

1 个答案:

答案 0 :(得分:1)

你要搜索的词可能是“打孔”。

  

打孔是一种计算机网络技术,用于在双方之间建立直接连接,其中一方或两方都在防火墙后面或在使用网络地址转换(NAT)的路由器后面。    - https://en.wikipedia.org/wiki/Hole_punching_(networking)