20 / 18 / 15
Регистрация: 29.10.2012
Сообщений: 157
1

Зависает клиент при получении файла

13.06.2015, 15:02. Показов 901. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
часть сервера
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
 public void getFile(string name) 
                {
                    FileStream fstFile = new FileStream(name, FileMode.Open, FileAccess.ReadWrite);
                    
                    BinaryReader binFile = new BinaryReader(fstFile);
 
                    FileInfo fInfo = new FileInfo(name);
 
                    string FileName = fInfo.Name;
                    byte[] ByteFileName = new byte[2048];            
                    ByteFileName = System.Text.Encoding.UTF8.GetBytes(FileName.ToCharArray());         
                    ws.Write(ByteFileName, 0, ByteFileName.Length);//передаем имя файла
 
                    long FileSize = fInfo.Length;
                    byte[] ByteFileSize = new byte[2048];
                    ByteFileSize = System.Text.Encoding.UTF8.GetBytes(FileSize.ToString().ToCharArray());
                    ws.Write(ByteFileSize, 0, ByteFileSize.Length);//передаем длину файла
 
                    int bytesSize = 0;
                    byte[] downBuffer = new byte[2048];
                    while ((bytesSize = fstFile.Read(downBuffer, 0, downBuffer.Length)) > 0)
                    {
                        ws.Write(downBuffer, 0, bytesSize); //передаем сам файл
                    }
 
                    }

часть клиента
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
        string UserName;
        string IP ;
        int ECHO_PORT;
        string dataToSend;
        byte[] data;
        NetworkStream ws;
        StreamReader rs;
        string returnData;
        Stream strLocal;
        TcpClient eClient;
 
        DownlowdTest downLowd = new DownlowdTest();
 
        //Подключение
        public void connectServer()
        {
            
            IP = "127.0.0.1";
            UserName = Data.USERNAME;
 
            ECHO_PORT = 8080;
            eClient = new TcpClient(IP, ECHO_PORT);
 
            rs = new StreamReader(eClient.GetStream());
            
            ws = eClient.GetStream();
        }
 
 public void downlowdTest()
        {
         
            try
            {
                int bytesSize = 0;
 
                byte[] downBuffer = new byte[2048];
 
                bytesSize = ws.Read(downBuffer, 0, 2048);
 
                string FileName = System.Text.Encoding.UTF8.GetString(downBuffer, 0, bytesSize);
 
                strLocal = new FileStream(@"C:\1\" + FileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
 
                downBuffer = new byte[2048];
 
                bytesSize = ws.Read(downBuffer, 0, 2048);
 
                downBuffer = new byte[2048];
 
                while ((bytesSize = ws.Read(downBuffer, 0, downBuffer.Length)) > 0)// тут клиент виснит 
                {
                    strLocal.Write(downBuffer, 0, bytesSize);
                }
            }
            finally 
            {
                strLocal.Close();
                eClient.Close();
                connectServer();
            }
      
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2015, 15:02
Ответы с готовыми решениями:

Клиент-сервер зависает при старте
Написал клиент-серверное приложение, помогите найти проблему. После старта сервера программа...

Зависает клиент при приёме от сервера
С начало сделал посыл данных только от клиента серверу..там всё хорошо далее начал делать...

Клиент-сервер. При нажатии на start, окно зависает
Когда запускаю проект, всё работает норм, но когда нажимаю на start окно перестаёт реагировать на...

Ошибка при получении размера файла
Не могу разобраться , в чем причина ошибки. Есть часть кода. Прога следит за файлами в дириктории...

2
20 / 18 / 15
Регистрация: 29.10.2012
Сообщений: 157
13.06.2015, 15:34  [ТС] 2
Вот делал по этому примеру. Тут клиент передает файл серверу , а мне нужно сервер передавал клиенту. Прошу кто нибудь может переделать
Вложения
Тип файла: rar Network File Transfer.rar (163.7 Кб, 2 просмотров)
0
20 / 18 / 15
Регистрация: 29.10.2012
Сообщений: 157
14.06.2015, 10:29  [ТС] 3
C#
1
2
3
4
    while ((bytesSize = ws.Read(downBuffer, 0, downBuffer.Length)) > 0)// тут клиент виснит 
                {
                    strLocal.Write(downBuffer, 0, bytesSize);
                }
вот тут зависает приложение , в чем может быть проблема,
кто может подсказать

Добавлено через 16 часов 3 минуты
Ураааааа.))) решил проблему) всем спасибо за помощь
0
14.06.2015, 10:29
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2015, 10:29
Помогаю со студенческими работами здесь

Зависает программа при получении таблицы из базы
Добрых времени суток. Есть удаленная БД, подключение к ней проходит нормально, а вот при попытке...

Зависает страница при получении сертификата разработчика
Всем доброго времени суток, огромная прозьба помоч, я пытаюсь купить сертификат разработчика ios,...

Сокет зависает при получении данных xml формата
Не могу понять в чем ошибка. По идеи должен возвращать данные xml формата, а у меня просто...

Приложение зависает при получении письма с вложениями pop3
Доброе время суток! Помогите разобраться. Сделал программу получения почты. Работает. Вот только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru