我正在编一个C/S模式的通讯软件,要实现远程图像传输功能,即在一个站点打开的图像可以传输到另一个站点,就像qq聊天时的“发送图片”一样,在本地窗口中打开的图片可以传输到一个远程的站点上去。请教各位高手应如何实现?

解决方案 »

  1.   

    你可以随便选择一种连接方式(TcpChannel,UdpClient,Socket…)连接后把图片当成文件发送
      

  2.   

    如果是用filestream的话,那么发送到对方的话也肯定是存到filestream里面,相应的要存一个文件。如果不想存文件直接在窗口里显示的话,怎么做?可以不直接发送filestream数据,而发送与filestream相关bitmap数据吗,这样的话发送到远程站点的话就不需要存文件了。请教各位!!!
      

  3.   

    发送与filestream相关bitmap数据---------这个什么意思 ?楼主直接把图片转换成流或者是byte 直接进行传输就可以啦。
            // 将图片转换成byte
           FileStream fs=new FileStream(@"f:\cym\temp\66.gif",FileMode.Open);
           BinaryReader br=new BinaryReader(fs);
           byte[] imgData=br.ReadBytes((int)fs.Length);
           br.Close();
           fs.Close();
      

  4.   

    我的意思是不想把FileStream写到要发送的数据缓冲区里面去,而是想把bitmap写到缓冲区。那么在远程端点就不需要保存文件了,而是直接在界面上显示图片
      

  5.   

    楼主搞明白网络之间的通信是怎么传输的了没,你认为图象是怎么传输的呢 ?client 接收到的数据直接的用image类读出来就可以啦 ,public static Image FromStream(Stream);
      

  6.   

    哦,我明白了!将FileStream传输到客户端,就可以构造一个Bitmap了。在网络上传输只能是比特数据或networkstream。