Member 14129828 Ответов: 1

Я хочу отправить изображение с сервера на клиент


Я пытаюсь отправить изображение с сервера клиенту. сервер отправил изображение, но клиент его не отображает ..У меня проблема с кодом.
кто-нибудь может мне помочь, пожалуйста.

Что я уже пробовал:

сервер\\
private void button6_Click(object sender, EventArgs e)
        {
            try
            {
                Image img = Image.FromFile("D:\\1.jpg");
                MemoryStream ms = new MemoryStream();
                img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                bytes = ms.ToArray();
                acc.Send(bytes, 0, bytes.Length, 0);
                MessageBox.Show("ok");
            }
            catch
            {
                MessageBox.Show("Failure....");
            }
            
        }

клиент\\
try
            {
                sock.Connect(new IPEndPoint(IPAddress.Parse(textBox3.Text), 3));
                
                new Thread(() =>
                {
                    read();
                }).Start();


            }
            catch
            {
                MessageBox.Show("failure");
            }


        }

        void read()
        {
            while (true)
            {
                try
                {

                    byte[] buffer = new byte[255];
                    int rec = sock.Receive(buffer, 0, buffer.Length, 0);
                    if (rec <= 0)
                    {
                        throw new SocketException();
                    }
                    Array.Resize(ref buffer, rec);
                    Invoke((MethodInvoker)delegate
                    {
                        
                        MemoryStream imgstream = new MemoryStream(buffer);
                        Image imgfromstream = Image.FromStream(imgstream);
                        pictureBox1.Image = imgfromstream;


                    });

                }
                catch
                {
                    MessageBox.Show("Disconcting");
                    sock.Close();
                    break;
                }

            }
            Application.Exit();
        }

Thomas Daniels

Я не запускал код, но что такое байты.Длина на сервере перед отправкой изображения? Ваш буфер на приемном конце имеет только 255 байт, и я не удивлюсь, если ваше изображение будет больше этого.

Member 14129828

спасибо за ваш ответ ...Это именно моя проблема. мой буфер был невелик. Я все исправил.

1 Ответов

Рейтинг:
10