Не отображаются данные переданные по сети - C#

Узнай цену своей работы

Формулировка задачи:

подскажите в чем проблема передаю данные по сети успешно без ошибок принимаются вроде тоже но вместо картинки получаю пустой файл или док-т, должен быть логотип а вместо этого белый экран
 int df = strData.Length - 3;
                            strData = strData.Substring(3, df);
                            if (Writing == null)
                            {
                                Writing = File.OpenWrite(path1 + "" + nam);
                                byte[] Buffer = new byte[65535];
 
                                string base64string = Convert.ToBase64String(Encoding.UTF8.GetBytes(strData));
                                Buffer = Convert.FromBase64String(base64string);
                               
                                Writing.Write(Buffer, 0, Buffer.Length);
                            }
                            else
                            {
                                int dfdfd = strData.Length;
                                byte[] Buffer = new byte[65535];/////
 
                                string base64string = Convert.ToBase64String(Encoding.UTF8.GetBytes(strData));
                                Buffer = Convert.FromBase64String(base64string);                             
 
                                Writing.Write(Buffer, 0, Buffer.Length);///////
                            }
                            if (strData.Length < 65535) Writing.Close();
При повторной попытке что то скачать вообще ничего не происходит как будто и не пыталась

Решение задачи: «Не отображаются данные переданные по сети»

textual
Листинг программы
  private TcpListener Server;
        private TcpClient remoteClient; private TcpClient localClient;
        private Thread thClient; private Thread thServer;
 
        const string soob = "001";
        const string info = "002";
        const string fail = "003";
 
        private void btnServer_Click(object sender, EventArgs e)//кнопка сервер
        {
            Server = new TcpListener(IPAddress.Any, 6785);
            Server.Start();        
            thServer = new Thread(() =>
            {
                remoteClient = Server.AcceptTcpClient();
                SendData(soob, GetLocDir());
                byte[] buffer = new byte[2048];
 
                while (remoteClient.Connected)
                {
                    Array.Clear(buffer, 0, buffer.Length);
                    remoteClient.GetStream().Read(buffer, 0, buffer.Length);
                    string strData = Encoding.Default.GetString(buffer);                
                    int b = strData.IndexOf("\0");
                    b = b - 3;
                    var messege = strData.Substring(0, 3);
                    strData = strData.Substring(3, b);
                    this.Invoke((Action)(() =>
                    {
                        if (messege == soob)
                        {
                            try
                            {
                                string poddir = String.Join("/", Directory.GetDirectories(strData));/////подправить отображение 
                                string file = String.Join("/", Directory.GetFiles(strData));/////подправить отображение
                                SendData(soob, poddir + "/" + file);
                            }
                            catch (Exception) { }
                        }
                        else if (messege == info)
                        {                           
                            FileInfo inf = new FileInfo(strData);
                            SendData(info, inf.Name + "@" + Convert.ToString(inf.Length));
 
                            FileStream Stream = File.OpenRead(strData);
                            byte[] Buffer = new byte[65535];
                            int BytesRead = -1;
                            while (BytesRead != 0)
                            {
                                BytesRead = Stream.Read(Buffer, 0, 65535);
                                SendData(fail, Convert.ToBase64String(Buffer));
                            }
                            Stream.Close();                  
                        }                       
                    }));
                }
            });
            thServer.Start();
        }
 
        FileStream Writing = null;
        string nam = ""; int size = 0;
        private void btnConnect_Click(object sender, EventArgs e)//кнопка клиент
        {
            localClient = new TcpClient();
            localClient.Connect("127.0.0.1", 6785);
            thClient = new Thread(() =>
            {
                byte[] buffer = new byte[65538];
                while (localClient.Connected)
                {
                    Array.Clear(buffer, 0, buffer.Length);
                    localClient.GetStream().Read(buffer, 0, 65538);
                    string strData = Encoding.Default.GetString(buffer);
                    var messege = strData.Substring(0, 3);
                    this.Invoke((Action)(() =>
                    {
                        if (messege == soob)
                        {
                            int b = strData.IndexOf("\0");
                            b = b - 3;
                            strData = strData.Substring(3, b);
                            listView1.Clear();
                            string[] tx = strData.Split('/');
                            foreach (string s in tx)
                            {
                                listView1.Items.Add(s, 1);
                                ls.Add(s);
                            }
                        }
                        else if (messege == info)
                        {
                            int b = strData.IndexOf("\0");
                            b = b - 3;
                            strData = strData.Substring(3, b);
                            string[] tx = strData.Split('@');
                            nam = tx[0];
                            size = Convert.ToInt32(tx[1]+5);
                            textBox1.Text = tx[0];
                            textBox2.Text = tx[1];
                        }
                        else if (messege == fail)
                        {
                            int df = strData.Length - 3;
                            strData = strData.Substring(3, df);
                            if (Writing == null)
                            {
                                Writing = File.OpenWrite(Path.Combine(path1, nam));
                            }
                            byte[] Buffer = Encoding.UTF8.GetBytes(strData);
                            Writing.Write(Buffer, 0, Buffer.Length);
                            if (strData.Length < 65535) Writing.Close();
                        }                        
                    }));
                }
            });
            thClient.Start();
            SendData(soob, GetLocDir());
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.615 из 5
Похожие ответы