Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832

Нарушение кодировки при передаче файла по tcp

12.09.2017, 21:37. Показов 809. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Появилась такая проблема.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Image1->Picture->SaveToFile("1.bmp");
FILE *fread;
int i, c;
TStringList *list = new TStringList;
AnsiString bro;
 
fread = fopen("1.bmp", "rb");
    for(i = 0;;i++) {
        if ((c = fgetc(fread)) == EOF) break;
        bro += (char)c;
    }
    fclose(fread);
        list->Add(bro);
        list->SaveToFile("2.bmp");
Таким образом файл получается точно такой же и ничего не изменяется. Но когда я вызываю:
C++
1
Server->Socket->Connections[0]->SendText((AnsiString)"str" + (AnsiString)bro + (AnsiString)"end");
и получаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    int endpos = fullmsg.Pos("end");
    int strpos = fullmsg.Pos("str");
    if(endpos > 5)
    {   //ShowMessage(fullmsg);
        if (strpos >= 1)
        {
            fullmsg = ReplaceStr(msg, "ent", "");
            fullmsg = ReplaceStr(msg, "end", "");
            TStringList *list = new TStringList;
            list->Add(fullmsg);
            list->SaveToFile("img.bmp");
            CppWebBrowser1->Hide();
            Image1->Left = CppWebBrowser1->Left;
            Image1->Top = CppWebBrowser1->Top;
            Image1->Width = CppWebBrowser1->Width;
            Image1->Height = CppWebBrowser1->Width;
            Image1->Picture->LoadFromFile("img.bmp");
            fullmsg = "";
        }
то файл, например, вместо 1 мб выходит 6 кб.
В оригинале начало такое:
BM6А 6 ( Ђ
В полученном файле:
эээ эээ эээ эээ.
В чем может быть проблема?

Добавлено через 52 минуты
И снова решил проблему.
1. ReplaceStr удаляет нужные байты
2. Не с той строкой работал при "вставлении" в файл

Добавлено через 13 минут
Всеравно не получается. Файл отказывается открываться как картинка. Может действительно кодировка?

Добавлено через 43 минуты
Вес полученного файла близок к отправленному, но различается.
Текст внутри выглядит примерно так как должен

Добавлено через 1 час 9 минут
Извиняюсь, снова моя ошибка при обработке
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2017, 21:37
Ответы с готовыми решениями:

Добавление лишних символов в начало файла при его передаче по tcp
Есть tcp сервер и клиент передаю между ними файл файл приходит с дописанными в начале несколькими символами. Из-за чего он дописывает...

Варьирование таймаута при передаче по TCP/IP
Доброго дня! В общем есть задание, реализовать клиент серверное приложение, которое будет: 1. Передавать 32 кб информации,...

Потеря данных при передаче по TCP
Система сложная, отслеживает и записывает все происходящее. В итоге получается вот что: сервер отправляет пакет (условный фрагмент из байт)...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2017, 21:37
Помогаю со студенческими работами здесь

Ошибка при передаче изображения по TCP
Ошибка при передаче изображения по TCP? Клиент: Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,...

Максимальный обьем при передаче по tcp
максимальный обьем при передаче по udp протоколу 65 килобайт а по tcp сколько?

Границы сообщения при передаче через TCP
Есть клиент/сервер, общаются через TCP. Логика следующая: клиент отправляет сообщение, сервер получает и отправляет назад клиенту, клиент...

TCP - нарушается целостность данных при передаче
Всем привет. В общем суть. Есть клиент-сервер. Серверу посылается запросу вида, new like (id,tID,uID) пример: new...

Проблема с объединением сообщений при передаче по TCP
Вообщем делаю регистрацию и авторизацию клиента на сервере. Клиент: private void button1_Click(object sender, EventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru