Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / не осуществляется повторная загрузка / 4 сообщений из 4, страница 1 из 1
05.06.2016, 17:09
    #39250854
Emiliya_Emili
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не осуществляется повторная загрузка
Подскажите почему не осуществляется повторная загрузка, первый файл нормально скачивается, а вот когда пытаюсь загрузить другой файл или в другое место ничего не происходит
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
 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);
                            int BytesRead = -1;
                            while (BytesRead != 0)
                            {
                                byte[] Buffer = new byte[65535];
                                BytesRead = Stream.Read(Buffer, 0, 65535);

                                if (localClient != null && localClient.Connected)
                                    localClient.GetStream().Write(Buffer, 0, Buffer.Length);
                                else if (remoteClient != null && remoteClient.Connected)
                                    remoteClient.GetStream().Write(Buffer, 0, Buffer.Length);
                            }
                            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[80000];
                while (localClient.Connected)
                {
                    Array.Clear(buffer, 0, buffer.Length);
                    localClient.GetStream().Read(buffer, 0, 80000);
                    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 (Writing == null)
                            {
                                Writing = File.OpenWrite(path1 + "\\" + nam);
                            }
                            Writing.Write(buffer, 0, buffer.Length);
                            if (buffer.Length < 65535) Writing.Close();
                        }
                    }));
                }
            });
            thClient.Start();
            SendData(soob, GetLocDir());
        }
...
Рейтинг: 0 / 0
05.06.2016, 17:16
    #39250858
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не осуществляется повторная загрузка
Emiliya_Emili,

в дебаггере что видно?
...
Рейтинг: 0 / 0
05.06.2016, 18:02
    #39250867
Emiliya_Emili
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не осуществляется повторная загрузка
Pallaris,
переменная Writing не пустая там старый файл
...
Рейтинг: 0 / 0
05.06.2016, 18:11
    #39250869
Emiliya_Emili
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не осуществляется повторная загрузка
эта строка никогда не срабатывает
в буфере всегда одно и тоже число
Код: c#
1.
 if (buffer.Length < 65535) Writing.Close();
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / не осуществляется повторная загрузка / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]