Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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# 屏幕共享的最佳方法是什么#_C#_Desktop_Screensharing - Fatal编程技术网

C# 屏幕共享的最佳方法是什么#

C# 屏幕共享的最佳方法是什么#,c#,desktop,screensharing,C#,Desktop,Screensharing,我想开发一个小型的通信应用程序,比如在服务器上会有一个wcf服务,在那个里会有一个桌面客户端。假设两个人通过wcf服务进行交互。当client1将数据发送到client2时,数据将转到wcf服务,wcf服务将数据推送到client2。借助wcf服务轻松开发基础通信应用程序。我想在我们的应用程序中添加一个名为屏幕共享的实用程序 客户端1将把他的桌面屏幕发送给客户端2。我知道捕获桌面映像并将整个映像转换为字节数组,然后将字节数组传递给client2是非常容易的,client2可以将字节数组转换为映像

我想开发一个小型的通信应用程序,比如在服务器上会有一个wcf服务,在那个里会有一个桌面客户端。假设两个人通过wcf服务进行交互。当client1将数据发送到client2时,数据将转到wcf服务,wcf服务将数据推送到client2。借助wcf服务轻松开发基础通信应用程序。我想在我们的应用程序中添加一个名为屏幕共享的实用程序

客户端1将把他的桌面屏幕发送给客户端2。我知道捕获桌面映像并将整个映像转换为字节数组,然后将字节数组传递给client2是非常容易的,client2可以将字节数组转换为映像,并将映像设置为他的picturebox。如果我每次都通过网络发送整个映像,那么性能会很差,速度会很慢。所以我需要知道人们如何开发应用程序来与他人共享屏幕,以及他们如何通过网络发送最少的数据。虽然我在谷歌上搜索了很多,以获取实际的标准,但一个也没有

因此,我请求本论坛的每一位成员都能以现实生活的理念详细讨论这个问题

我的观点是 1) 请告诉我如何通过网络发送两幅图像之间的差异,而不是一次又一次地发送整个图像。有很多图像处理库可用于获取两个图像之间的差异,但我不知道哪一个是最好的,而且速度会更快…只需几毫秒即可获取两个图像之间的差异

2) 在提取两幅图像之间的差异后,我可以通过网络发送差异,但在客户端2,我如何将差异应用于当前图像。这是非常重要的

3) 当picturebox在client2上频繁更新时,可能会出现闪烁。我如何避免这种闪烁,而不是如何实现客户端2图像的平滑切换

我需要帮助的方式,比如如果可能的话,请建议我使用代码片段库,我可以使用它来提取两个图像之间的差异

另外,请告诉我可以使用什么例程在客户端2的当前图像上应用差异

再次告诉我如何实现客户端2图像的平滑切换而不闪烁


很多学者每秒都会访问这个论坛,所以我希望能对c#中的pesudo代码进行详细的讨论。谢谢

不要着手写自己的项目。首先使用现有的库


我们可以通过互联网在两台电脑之间共享我的屏幕吗?但两台电脑可能不在同一个局域网或广域网中……那么你的文章可以告诉我共享屏幕的方式。我想你不明白我想做什么。我想像teamviewer logmein一样共享屏幕,但不想控制远程机器的键盘或鼠标…就像共享屏幕一样。我不是在寻找远程桌面协议。不管怎样,谢谢你的建议。RDP是一种方式,不管有没有输入控制。这就是每个Windows屏幕共享产品所使用的,通过LAN/WAN或您喜欢的任何网络。RDP可以通过internet使用。当我们进行远程桌面共享或vnc时,我们需要提供另一个我们想要连接的机器IP。但在teamviewer或logmein的情况下,我们不需要知道客户机IP。我喜欢开发应用程序,让我可以与世界上的任何人共享我的屏幕,而不知道他们的IP地址。所有连接NAT背后的消费者的服务,如果他们不能在NAT上打一个UPnP孔,就求助于通过主机服务进行路由。TeamViewer和LogMeIN也不例外。这是TCP 101。Skype也不例外(他们可以使用非NAT消费者进行中继/路由,这是另一回事)。这个问题与协议内容完全正交。