Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 22:10   #1
Loki087
Новичок
Джуниор
 
Регистрация: 30.11.2011
Сообщений: 3
Вопрос Проблемы с чтением из сокета файлов не являющихся текстовыми . read()

Я решил написать что-то типа сетевого файлового менеджера для телефона(symbian). Т.е я подключаюсь по вайфаю к серверу на компе(linux) и с компа могу лазить по телефону и передавать файлы. Для реализации этого дела я пишу клиент для телефона на m-shell и сервер для компа на си. В общем все пока норм было, реализовал команды вывода списка файлов в текущей директории, смену директории как на компе таки и в телефоне. и перешел к написанию функции копирования файла с телефона на комп. в итоге текстовые файлы копируются отлично а любые другие типа картинок архивов и.т.п не хотят. Стал копаться, выяснил что вызов read считывает все что приходит с телефона полностью(read возвращает число считанных байтов из сокета) но не записывает в буфер(это в случае передачи не текстовых файлов). Точнее записывает только первые несколько байт тех что задают тип файла а остальное куда то пропадает. вот я не пойму в чем дело и как бороться, куда копать?
Loki087 вне форума Ответить с цитированием
Старый 30.11.2011, 23:58   #2
Loki087
Новичок
Джуниор
 
Регистрация: 30.11.2011
Сообщений: 3
По умолчанию

Похоже дело в режиме O_BINARY Осталось найти как открыть сокет в этом режиме.
Loki087 вне форума Ответить с цитированием
Старый 01.12.2011, 01:20   #3
Loki087
Новичок
Джуниор
 
Регистрация: 30.11.2011
Сообщений: 3
По умолчанию

Проблема решена и как всегда заключалась в глупой ошибке которая опять же как всегда очень долго незаметна. Как выяснилось read() считывал в буфер все данные из сокета. А проблема была в том что писал в файл я количество байт равное strlen(data) и разумеется для бинарного файла отсекалось все кроме начальных заголовков.

Хорошо поговорил сам с собой) Тема закрыта полагаю и можно её удалить.

Последний раз редактировалось Loki087; 01.12.2011 в 01:22.
Loki087 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с чтением из нескольких файлов ilia.sk8 Помощь студентам 0 22.03.2011 22:36
Проблема с чтением файлов в Unicode Xeonc Общие вопросы C/C++ 1 09.11.2010 18:45
C++\CLI проблемы с чтением русских букв с txt Eros Общие вопросы .NET 1 04.10.2010 02:03
Проблемы с записью/чтением типизированного файла khrenkov Общие вопросы Delphi 1 20.09.2010 15:09
Проблемы с чтением данных в Delphi cyberandom Помощь студентам 11 05.02.2010 19:52