您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 内存流的文件

内存流的文件

来源:网络整理     时间:2016/6/29 11:05:21     关键词:

关于网友提出的“ 内存流的文件”问题疑问,本网通过在网上对“ 内存流的文件”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 内存流的文件
描述:

/*
*
* 客户端
*
*/
        /// 


        /// 屏幕监控
        /// 

        public void ViewScreen()
        {
            Socket s = null;
            try
            {
             //监听端口
                this.tcpLook = new TcpListener((int)EnumPort.PORT.屏幕监控);
                this.tcpLook.Start();
                //取得通道
                s = this.tcpLook.AcceptSocket();
                NetworkStream prictNS = new NetworkStream(s);
            }
            catch(Exception)
            {
            }
            try
            {
                while (true)
                {
                    Thread.Sleep(100);
                    /*确定图片的像素*/
                    Bitmap image = new Bitmap(1024, 768);
                    //从指定的 Image 创建新的 Graphics。
                    Graphics g = Graphics.FromImage(image);
                    /*确定图片的大小 坐标  像素 */
                    g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(1024, 768));
                    IntPtr ipt = g.GetHdc();
                    g.ReleaseHdc(ipt);
                     //内存流
                    MemoryStream ms = new MemoryStream();
                    //把图片保存到内存中
                    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    //pictureBox1显示图片
                    this.pictureBox1.Image = Image.FromStream(ms);
                    int number = 0;
                    //定义一个字节大小
                    byte[] bt = new byte[1024];
                    //从内存的流里读取内容
                    while ((number = ms.Read(bt, 0, bt.Length)) > 0)
                    {
                     //发送内容
                        prictNS.Write(bt, 0, number);
                        //刷新
                        prictNS.Flush();
                    }
                    //关闭内存流
                    ms.Close();
                    //销毁
                    ms.Dispose();
                    //销毁图片
                    image.Dispose();
                }
            }
            catch(Exception)
            {
                
            }
        }
        
        
        /*
        *
        * 服务端
        *
        */
        //连接
         TcpClient tc = new TcpClient(((IPEndPoint)sk.RemoteEndPoint).Address.ToString(), (int)EnumPort.PORT.屏幕监控);
           //取得流管道
           NetworkStream ns = tc.GetStream();
            try
            {
                while (true)
                {
                
                    int number = 0;
                    //字节数组大小
                    byte[] bt = new byte[1024];
                    MemoryStream ms = new MemoryStream();
                    //接收发来的字节数
                    while ((number = ns.Read(bt, 0, bt.Length)) > 0)
                    {
                     //写到内存流中
                        ms.Write(bt, 0, number);
                        //刷新
                        ms.Flush();           
                    }
                    //pictureBox1显示发过来的图片
                    this.pictureBox1.Image = Image.FromStream(ms);
                    关闭流
                    ms.Close();
                }
            }
            catch(Exception)
            {
            
            }
            
            
            
            为什么我的客户端这段代码老实没执行啊
    while ((number = ms.Read(bt, 0, bt.Length)) > 0)
                    {
                     //发送内容
                        prictNS.Write(bt, 0, number);
                        //刷新
                        prictNS.Flush();
                    }
    MessageBox.Show(ms.Read(bt, 0, bt.Length).ToString());打印出来是0啊
                       
                   为什么读不出内存流里面的内容啊    请大家帮帮忙啊


解决方案1:

需要MemoryStream的内容?不必读的。ToArray就可以了。


以上介绍了“ 内存流的文件”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2150864.html

相关图片

相关文章