| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Получение бинарного файла через сокет (C#) |
| Автор: Lord Dagger 8.9.2005, 14:30 | ||
| Здраствуйте! Я написал небольшую программу для загрузки файлов, но возникла следующая проблема: как отделить заголовок от данных? Пока я делаю это простым парсингом:
Но возникает проблема: скачиваемый файл не может быть больше размеров буфера. Как преодолеть это? MSDN читал, в google искал. Нашел много всего хорошего, но не ответ на этот вопрос... Буду очень благодарен за помощь! |
| Автор: Mad 8.9.2005, 14:39 |
| Lord Dagger 1. Судя по коду, запрос этот ты на HTTP сервер шлеш. Но может и нет, так что укажи какой протокол 2. Если протокол HTTP, то лечше использовать WebRequest 3. Для приема произволной длины в памяти, используй MemoryStream |
| Автор: Lord Dagger 8.9.2005, 14:52 |
| Mad 1. Да, протокол http 2. Этовроде бы другой уровень абстракции? 3. Это мне не нужно... Если файл занимает 100 мб, то гораздно удобнее читать его порциями по 1 мб Фактически, вопрос формулируется так: Как правильно организовать считывание файла через network stream с использованием буфера, значительно меньше длины файла? |
| Автор: Mad 8.9.2005, 15:08 | ||||
тогда у тебя и конец заголовка определяеться неправильно каждая строка в заголовке ответа HTTP сервера заканчиваеться 13-13-10 а сам заголовок заканчиваеться 13-13-10-13-13-10 а код получаеться такой :
|
| Автор: Lord Dagger 8.9.2005, 15:43 | ||||
| Mad Спасибо, но код не работает...
Приводит к: (265): Operator '&&' cannot be applied to operands of type 'bool' and 'byte' Если записать
получается бесконечный цикл... |
| Автор: Mad 8.9.2005, 15:58 | ||||||
там просто опечатка получилась
модет винда делает маленькое преобразование, попробуй так
|
| Автор: Lord Dagger 8.9.2005, 16:10 | ||
| Mad Получилось, теперь работает, но проблема здесь:
readed всегда получает значение 0, когда считывание файла прекращается. Везде в примерах тем не менее я видел -1 что бы это значило? P.S. Файл считывается нормально, только выполнение программы не прекращается |
| Автор: mr.DUDA 8.9.2005, 16:32 | ||
Скорее всего, это ошибка. |
| Автор: Lord Dagger 8.9.2005, 16:48 |
| mr.DUDA Ясно.. Спасибо всем за помощь, вы мне здорово помогли! Неплохо было бы на будущее написать туториал в C# FAQ Подобные есть, но под Java: http://www.javable.com/columns/serv_side/workshop/18/ |