Отправка картинки TCP C#

В общем есть код

static void Main()
    {
        TcpClient client = null;
        byte[] message = null;
        using (var req = new HttpRequest())
        {
            string image = string.Format("https://api.vk.com/captcha.php?sid={0}", "1657");
            Image captchaImage = Image.FromStream(req.Get(image).ToMemoryStream());
            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
            captchaImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
            message = memoryStream.ToArray();
        }

        try
        {
            client = new TcpClient(address, port);
            NetworkStream stream = client.GetStream();
            while (true)
            {
                stream.Write(message, 0, message.Length);

                message = new byte[1024];
                StringBuilder builder = new StringBuilder();
                int bytes = 0;
                do
                {
                    bytes = stream.Read(message, 0, message.Length);
                    builder.Append(Encoding.Unicode.GetString(message, 0, bytes));
                }
                while (stream.DataAvailable);

                string request = builder.ToString();
                Console.WriteLine("Сервер: {0}", request);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            client.Close();
        }
    }

Не могу отправить картинку, пишет что Не удается прочитать данные из транспортного соединения: Удаленный хост принудительно разорвал существующее подключение.

Прием картинки

public TcpClient client;
    private static object locker = new object();
    public ClientObject(TcpClient tcpClient)
    {
        client = tcpClient;
    }

    public void Process()
    {
        NetworkStream stream = null;
        try
        {
            stream = client.GetStream();
            byte[] data = new byte[1024];
            while (true)
            {
                int bytes = 0;
                byte[] mess = null;
                do
                {
                    bytes = stream.Read(data, 0, data.Length);
                    mess = data;
                }
                while (stream.DataAvailable);

                Guid gd = new Guid();
                data = ImageProcessing(mess, gd.ToString());
                stream.Write(data, 0, data.Length);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            if (stream != null)
                stream.Close();
            if (client != null)
                client.Close();
        }
    }

В чем моя ошибка? С сетями такого плана работаю в первый раз


Ответы (0 шт):