最近在做的一个课程设计,刚刚接触到网络编程,有很多地方不是很懂,遇到了一些问题。
简单描述一下,A电脑作为Server端,为一图片服务器,上面有许多图片资源;B,C电脑为Client端。B,C通过socket与A建立连接,然后可以获取A中指定文件夹中的图片资源列表,选中相应的图片后,即可传送到客户端。
注意,是传送到客户端,并不是像FTP那样下载到本地的。就是说图片变为字节流传输,客户端接受字节流,然后直接把图片显示在picturebox中,而不进行下载。
请各位大侠们给点思路,不胜感激啊

解决方案 »

  1.   

    你可以搜一下如何把图片变为 byte[] 或者写入 Stream。
      

  2.   

    思路:服务端将图片转字节流,Socket通信发送这个字节流,客户端收到后还原成图片。
      

  3.   

    byte[] fb;
      OpenFileDialog ofd = new OpenFileDialog();
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        textBox1.Text = ofd.FileName;
                        fb = File.ReadAllBytes(textBox1.Text);
    }
      

  4.   

    socket传输的本质 是 byte[]   因此任何数据最终需要转换成字节流  Bitmap也不例外  序列化Bitmap
      

  5.   

    楼主对一些概念不够了解啊,下载就是从服务器到客户端的传输,与存到磁盘无关。
    像这样的需求,服务端可以直接使用现成的FTP服务软件,还可以控制权限
    客户端编程使用FTP传输方式就好了
      

  6.   

    谢谢!
    关键是怎么把图片转换的字节流再重新转换成图片,显示在picture上呢?如何做到有序的处理
      

  7.   

    PictureBox.Image本来就有现成的方法跟流交互的多个方法,你都懒得自己搜一下吗?
      

  8.   

    完整代码可以参考这个博客:
    http://www.cnblogs.com/zhaoblogs/archive/2011/11/18/2254196.html
      

  9.   

    PictureBox.Image本来就有现成的方法跟流交互的多个方法,你都懒得自己搜一下吗?正解
      

  10.   

    引用 楼主 madaming 的回复:
     ObjectQuery<T>.Include 方法include的实体怎样排序  具体实例:       return this.ObjectContext.题库集.Include("背记题"); “题库集”与"背记题"是一对多关联,那么在include中德"题库集"怎样排序。  
      

  11.   

    PictureBox.Image本来就有现成的方法跟流交互的多个方法,你都懒得自己搜一下吗?
    刚刚接触C#编程,了解不多。
    现在问题已经解决了,谢谢指导