Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
45 / 45 / 18
Регистрация: 15.03.2009
Сообщений: 178
1

Отправка и прием файла большого размера

20.10.2009, 05:47. Показов 3386. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите как узнать окончание приема пакетов файла большого размера.
Клиент:
C#
1
2
3
4
if (sock.Connected)
{
sock.SendFile(p);
}
Сервер:
C#
1
2
3
4
5
6
while (?)  //какое условие нужно?
{
byte[] bytes = new byte[1024];
int BytesRec = connection.Socket.Receive(bytes);
GetInformation += Encoding.GetEncoding(1251).GetString(bytes, 0, BytesRec); //получаем все пакеты
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2009, 05:47
Ответы с готовыми решениями:

Перезапись файла большого размера
Помогите реализовать запись в тот же файл с которого было произведено чтение через...

Открытие файла большого размера
Имеется задача, нужно открыть бинарный файл больших размеров, так, чтобы не произошло переполнение...

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

Шифрование файла большого размера
Вопрос нубского характера. Как зашифровать алгоритмом AES файл большого размера, основываясь на том...

6
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
20.10.2009, 06:39 2
Код
BytesRec!=0
1
45 / 45 / 18
Регистрация: 15.03.2009
Сообщений: 178
20.10.2009, 08:13  [ТС] 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
while (true)
{
string GetInformation = "";
int y = 0;
while (y == 0) //принимаем пока размер пакетов не 0
{
byte[] bytes = new byte[1024];
int BytesRec = connection.Socket.Receive(bytes);
GetInformation += Encoding.GetEncoding(1251).GetString(bytes, 0, BytesRec); //получаем все пакеты
if (BytesRec == 0) y++;
}
}
Почему-то не выходит из цикла.
Может отправлять файл нужно не куском, а предварительно разбить его на байты?
0
45 / 45 / 18
Регистрация: 15.03.2009
Сообщений: 178
20.10.2009, 13:56  [ТС] 4
Отправляется несколько файлов
C#
1
2
3
4
5
6
7
for(...)
{
if (sock.Connected)
{
sock.SendFile(p);
}
}
0
45 / 45 / 18
Регистрация: 15.03.2009
Сообщений: 178
21.10.2009, 05:00  [ТС] 5
Получение файла на сервере:
C#
1
2
3
4
5
6
7
8
9
10
string GetInformation = "";
byte[] bytes = new byte[1024];
int BytesRec = connection.Socket.Receive(bytes, bytes.Length, 0);
GetInformation = Encoding.GetEncoding(1251).GetString(bytes, 0, BytesRec);
 
while (BytesRec != 0) //принимаем пока размер пакетов не 0
  {
     BytesRec = connection.Socket.Receive(bytes, bytes.Length, 0);
     GetInformation += Encoding.GetEncoding(1251).GetString(bytes, 0, BytesRec); //получаем все пакеты
  }
Подскажите почему программа клиента подвисает при отправке файла sock.SendFile(p) ?
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
21.10.2009, 07:13 6
C#
1
if (1024 - BytesRec != 0) y++;
1
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
23.10.2009, 20:49 7
Нужно следить, так как последняя порция байтов может быть меньше, чем 1024 байта. Если это не отследить, то в файл запишется незаполненный кусок данных из предыдущей порции.
И мне лично удобнее и принимать, и ПЕРЕДАВАТЬ файлы кусками.
2
23.10.2009, 20:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2009, 20:49
Помогаю со студенческими работами здесь

Прикрепление файла большого размера на сайте
как сделать, чтобы на сайте можно было размещать файл большого размера? Например, файл 40 МБ,...

Открытие файла xml большого размера
как открыть файл большого размера xml? Размер болие чем 70 мб

GZipStream - параллельная распаковка файла большого размера
Всем привет! Проблема отображена в названии темы. С сжатием всё понятно: читаем кусочки файлов...

Загрузка файла большого размера с одного устройства
Здравствуйте! Сейчас делаю сайт и передо мной стоит задача - позволить зарегистрированному...

Запись в BLOB (MySQL) файла большого размера
подскажите пожалуйста как писать в BLOB(MySQL) когда размер файла порядка 10-100MB. есть пример...

Исправить ошибку при выгрузке данных из файла большого размера
Всем привет! Давно не писал. За это время как-то разобрался с кодом построения графиков. Интересно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru