当前位置:编程学习 > C#/ASP.NET >>

网络编程高手请进来,Socket发送图片错误~~~

发送端主要代码:
#region 用Socket发送图片
    private void time(object o)
    {

        IPAddress sIP = IPAddress.Parse("127.0.0.1");
        IPEndPoint ssIP = new IPEndPoint(sIP, 8001);
        Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        try
        {
            s.Connect(sIP, 8001);
        }
        catch (Exception e)
        {
            Console.WriteLine("Error" + e.Message);
        }
    
        try
        {
            
            Bitmap CurrentBitmap = GetDesktopBitmap();
            MemoryStream MS = new MemoryStream();
            CurrentBitmap.Save(MS, ImageFormat.Jpeg);
            byte[] b = MS.ToArray();
            s.Send(b, b.Length, 0);
        }
        catch (Exception e)
        {
            Console.WriteLine("Error" + e.Message);

        }
    }
    #endregion
运行结果:


接收端主要代码:
 IPAddress HostIP = IPAddress.Parse("127.0.0.1");
        IPEndPoint point;
        Socket socket;
        bool flag = true;
        Socket acceptedSocket;
        delegate void SetTextCallback(Bitmap mybit);
        private void SetText(Bitmap mybit)
        {
            pictureBox1.Image = mybit;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            HostIP = IPAddress.Parse("127.0.0.1");
            try
            {
                point = new IPEndPoint(HostIP, 8001);
                socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socket.Bind(point);
                socket.Listen(50);
                acceptedSocket = socket.Accept();
                Thread thread = new Thread(new ThreadStart(Proccess));
                thread.Start();
            }
            catch (Exception ey)
            {
                MessageBox.Show(ey.Message);
            }
        }

        private void Proccess()
        {
            if (acceptedSocket.Connected)
            {
                while (flag)
                {

                    byte[] b = new byte[199999];
                    //读取字节 
                    acceptedSocket.Receive(b);
                    //放到流中 
                    MemoryStream ms = new MemoryStream(b);
                    //从流中读取图片 
                    Image img = Image.FromStream(ms);
                    //设置pictureBox 
                    pictureBox1.Image = img;

请高手们赐教,小弟刚学C#,非常感谢!!! --------------------编程问答-------------------- 你服务器端打开了没有? --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 服务器端已打开,端口8001也已经打开 --------------------编程问答-------------------- 服务端没有监听,或者你的防火墙封闭了
--------------------编程问答-------------------- 防火墙的问题吧,连接的时候是马上出来还是等一会儿才出来? --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 防火墙我关闭了,还是这样!!! --------------------编程问答-------------------- 我刚刚逐句运行,发现接收端Load事件根本没有运行!!! --------------------编程问答--------------------   acceptedSocket = socket.Accept(); 
                Thread thread = new Thread(new ThreadStart(Proccess)); 
                thread.Start(); 

你接收端写的明显有问题, --------------------编程问答-------------------- 序列化成xml再发 --------------------编程问答-------------------- 目标地址不对 --------------------编程问答-------------------- 大哥`````````你new Thread调用函数,这个Thread知道此Socket?
  弄个类把socket.Accept接收到的Socket丢进去,然后去处理吧.

 个人感觉.......... --------------------编程问答-------------------- 另外你这报的error不是已经出来了么?套接字没有提供地址. --------------------编程问答-------------------- 服务端监听有问题
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,