项目:C# winform  开发环境 vs2005
问题:
     客户端要传送的数据为: RGB格式的图片
     socket图片传送,服务器端如何实现,将客户端通过socket 传来的数据,以图片的形式在服务器显示出来?
代码应该怎么写啊?高人请指点.再具体描述:我做的是远程监控,要实现服务器对客户端的监控,需要获得客户端当前的屏幕,当前屏幕截图是
通过C++ 实现的,获得是 RGB 格式的图片。服务器端是C# winform高人请指点最好的方式

解决方案 »

  1.   

    先将图片转化为RGB矩阵 再将矩阵字符串传输给服务器端 再由服务器端 将矩阵转化为JPG图片
    很简单的
      

  2.   

    .net有个自带的 方法 直接可以把JPG图片和 RGB颜色矩阵互相转换
      

  3.   

    你看看这个远程桌面,是否可以满足你的需要?
    1、C#求助,远程桌面登录
    http://topic.csdn.net/u/20100526/22/665bf802-ead5-4e37-9417-fa0db8139b12.html?seed=1127532390&r=65775168#r_65775168
    2、Remote Desktop using C#.Net
    http://www.c-sharpcorner.com/UploadFile/thiagu304/remotedesktop10262009033113AM/remotedesktop.aspx
    3、远程桌面(基于C#开发,需要.Net2.0平台框架)
    http://download.csdn.net/source/1518054/
    4、RDPManager
    http://sourceforge.net/projects/rdpmanager/files/
    5、Multi Remote Desktop Client .NET
    http://multirdpc.codeplex.com/
    6、terminals
    http://terminals.codeplex.com/
    7、VncSharp: A .NET VNC Client Library
    http://cdot.senecac.on.ca/projects/vncsharp/
      

  4.   

    http://topic.csdn.net/t/20050817/11/4213703.html
      

  5.   

    Socket传输数据都是以字节流形式的,不管你是文本文件、exe文件,还是RGB文件结果都可以按照socket.Send(buffer)的形式传送,其中buffer是字节流。
    1、LZ先把获取的图片转换成字节流
    Image img=Image.FromFile();
    MemeryStream stream=new MemeryStream();
    img.Save(stream,图片格式);
    byte[] buffer=stream.ToArrays();
    2、在该程序中,自己定义通信协议,消息=消息种类+消息长度+消息内容,LZ可以把消息封装成一个类,当然可以将将消息分段发。消息发送时,要注意粘包现象,解决此问题建议LZ看一下http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html3、socket发送服务器端根据接收到的字节流,和图片格式(消息种类中包含图片格式),保存成对应的图片,至于怎样显示,找个PictureBox就OK了吧,要是不怕麻烦,或者调用WIN32API函数中的BitBlt()、或者StrechBlt()等函数。
      

  6.   

    管他什么格式,只要是个文件。转换成byte[] 数组。。在保存成相应的格式
      

  7.   

    谢谢各位高手,现在结贴,问题基本解决。 (阿捷) 和xiaozhi_5638
    的回答给了我很大的帮助。
      

  8.   


    在应用程序中可以实现了,谁有没有在Web中实现呢连接Linux呢?