powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Файловый сервер
6 сообщений из 6, страница 1 из 1
Файловый сервер
    #39233465
Emiliya_Emili
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как реализовать в программе:
а) отслеживание загрузки файла и вывод в прогрессбар
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        private void btnDownload_Click(object sender, EventArgs e)
        {
            ListViewItem item = listView1.SelectedItems[0];
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                string path1 = folderBrowserDialog1.SelectedPath + "\\" + item.Text;
                string path2 = FPath + "\\" + Convert.ToString(item.Text);


                Form2 form2 = new Form2();
                form2.process(proc);
                File.Move(path2, path1);
            }
        }


б) как понять что соединение с сервером/клиентом нарушено и отправить сообщение
Код: 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.
              private void clientServer()
        {
            byte[] remdata = { };
            TcpClient Client = new TcpClient();
            string ip = "127.0.0.1";
            int port = 3333;
            try
            {
                Client.Connect(ip, port);
            }
            catch
            {
                return;
            }
            Socket Sock = Client.Client;
            Sock.Close();
            Client.Close();


            Server Serv = new Server();
            Serv.Create(port);
        }

#region //Сервер клиент
        public class Server 
        {
            private int LocalPort;
            private Thread ServThread; 
            TcpListener Listener;

            public void Create(int port)
            {
                LocalPort = port;
                ServThread = new Thread(new ThreadStart(ServStart));
                ServThread.Start(); 
            }

            private void ServStart()
            {
                Socket ClientSock;
                string data;
                byte[] cldata = new byte[1024]; 
                Listener = new TcpListener(LocalPort);
                Listener.Start(); 
                try
                {
                    ClientSock = Listener.AcceptSocket(); 
                }
                catch
                {
                    ServThread.Abort(); 
                    return;
                }
                int i = 0;

                if (ClientSock.Connected)
                {
                    while (true)
                    {
                        try
                        {
                            i = ClientSock.Receive(cldata); 
                        }
                        catch
                        {
                        }
                    }
                }
            }
        }
#endregion



в)если связь с сервером была потеряна во время загрузки, то при нажатии кнопки перезапустить загрузка должна продолжиться, пытаюсь реализовать через процент загрузки
Код: c#
1.
2.
3.
4.
5.
6.
 private void btnRestart_Click(object sender, EventArgs e)
        {
            clientServer();
            //продолжить загрузку
            var result = MessageBox.Show("Связь востановлена!");
        }
...
Рейтинг: 0 / 0
Файловый сервер
    #39233969
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Emiliya_Emili,

Вот если бы Вы сделали три вопроса в трех топиках, то может быть Вам и ответили
...
Рейтинг: 0 / 0
Файловый сервер
    #39234036
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Читать порциями, обновлять прогресс после каждого чтения
2. Ловить exception в любом месте при попытке считать новую порцию
3. Реализовать контракт взаимодействия с сервером, при котором он сможет отдавать файл, начиная с n-го байта
...
Рейтинг: 0 / 0
Файловый сервер
    #39234402
Emiliya_Emili
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris1. Читать порциями, обновлять прогресс после каждого чтения

Поясните что значит читать порциями и как это делается
...
Рейтинг: 0 / 0
Файловый сервер
    #39234404
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Emiliya_EmiliPallaris1. Читать порциями, обновлять прогресс после каждого чтения

Поясните что значит читать порциями и как это делается

Ну вот же у тебя читается по 1024 байта

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
               byte[] cldata = new byte[1024]; 
               .....

                if (ClientSock.Connected)
                {
                    while (true)
                    {
                        try
                        {
                            i = ClientSock.Receive(cldata);
...
Рейтинг: 0 / 0
Файловый сервер
    #39234420
Emiliya_Emili
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris, а как с ее помощью отследить процент загрузки файла?

можно как то каждые 100 млсекунд просматривать сколько байт файла скачалось?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Файловый сервер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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