Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Indy 10, Builder 2009 + Update 2 :D 
V
    Опции темы
Kirgston
Дата 15.5.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Всем доброго времени суток! =) Ну поскольку на данный момент работаю с сетью (изучаю  smile ) то есть скажем необходимость передачи данных. Так вот... надо из одного Рич едита передать в другой. На Делфи помню (пол года назад писал) всё работало. Перенес код на С++ и уже орёт EIdNoDataToRead и серв подвисает. Оба клиент\сервер настроены на один и тот же порт. Аля 4600 и один и тот же ип - 127.0.0.1 . Виснет всё когда доходит то транспорта Мемори стрима. Хотя перед этим кидает его размер и вроде удачно... что на сервере І при трассировке равна 390, что в клиенте при чтении... значит коннект + некая связь всётаки есть! =) Но... что то перекинуть оно всё не хочет. Очень надеюсь на вашу помощь!

Серв:
Код

void __fastcall TForm1::SrvConnect(TIdContext *AContext)
{
TMemoryStream *mem=new TMemoryStream;
__int64 i;
RE->Lines->SaveToStream(mem,false);
i=mem->Size;
AContext->Connection->IOHandler->Write(i);
AContext->Connection->IOHandler->Write(mem,i,false);
AContext->Connection->Disconnect();
}

void __fastcall TForm1::SrvExecute(TIdContext *AContext)
{
TMemoryStream *mem=new TMemoryStream;
__int64 i;
RE->Lines->SaveToStream(mem);
i=mem->Size;
AContext->Connection->IOHandler->Write(i);
AContext->Connection->IOHandler->Write(mem,i);
AContext->Connection->Disconnect();
}
//---------------------------------------------------------------------------



Клиент:

Код

void __fastcall TForm1::ClConnected(TObject *Sender)
{
__int64 i;
TMemoryStream *mem=new TMemoryStream;
i=Cl->IOHandler->ReadInt64();
Cl->IOHandler->ReadStream(mem,i);
RE->Lines->LoadFromStream(mem);
mem->Free();
}
//---------------------------------------------------------------------------


PM MAIL   Вверх
artsb
Дата 15.5.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Kirgston, я не работал с 10-ми Indy. У меня 8-ка. А насколько мне известно, они сильно изменились. Так что проверить не смогу.

Цитата(Kirgston @  15.5.2009,  20:04 Найти цитируемый пост)
и один и тот же ип - 127.0.0.1 

ну серверу вы IP задать никак не могли smile

Цитата(Kirgston @  15.5.2009,  20:04 Найти цитируемый пост)
Хотя перед этим кидает его размер и вроде удачно

А зачем размер передавать? В 8-ке можно передать весь поток. А при чтении потока поставить флаг "Читать весь".


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kirgston
Дата 15.5.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Там не совсем так =)

Тут видити ли... я могу указать на сервере ип =) либо 0.0.0.0 - это как я понял автоподбор ИП. Либо 127.0.0.1 - локалка, либо 192.1.168.0 вроде так. Это не знаю что =)

Ну тут надо отправить Н количество и принять Н количество =) то есть надо отсылать сколько принимать. Есть конечно флажок принимать до дисконекта... но мне не нужен дисконект =)
PM MAIL   Вверх
artsb
Дата 15.5.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Kirgston @  15.5.2009,  21:17 Найти цитируемый пост)
Там не совсем так =)

Не спорю =)

Цитата(Kirgston @  15.5.2009,  21:17 Найти цитируемый пост)
Тут видити ли... я могу указать на сервере ип =) либо 0.0.0.0 - это как я понял автоподбор ИП. Либо 127.0.0.1 - локалка, либо 192.1.168.0 вроде так. Это не знаю что =)

Странно. Зачем это...

Цитата(Kirgston @  15.5.2009,  21:17 Найти цитируемый пост)
Есть конечно флажок принимать до дисконекта... но мне не нужен дисконект =) 

Это тоже есть, но я имел ввиду это:
Код

AThread->Connection->ReadStream(mystream, -1, false);

первый параметр - поток, второй - кол-во байт, которые нужно прочитать (-1 - весь поток), третий - читать до разъединения.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kirgston
Дата 15.5.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Цитата(artsb @  15.5.2009,  21:37 Найти цитируемый пост)
Странно. Зачем это...

Я думаю для того чтобы делать скажем... ну базы данных локальные (локальная сеть) и внешние (инет) =) вот для такого наверно =) 
Цитата(artsb @  15.5.2009,  21:37 Найти цитируемый пост)
то тоже есть, но я имел ввиду это:код C++ Builder1:AThread->Connection->ReadStream(mystream, -1, false);

хмм... надо будет попробовать =)
PM MAIL   Вверх
Kirgston
Дата 16.5.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Блин теперь сокет еррор о_О но почему??? Странно... код не изменял...
PM MAIL   Вверх
Kirgston
Дата 16.5.2009, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Е... ребята... вопросик...

Код

RE->Lines->Add("Ssss");
TMemoryStream *mem=new TMemoryStream;
RE->Lines->SaveToStream(mem);
//i=mem->Size;
RichEdit1->Lines->LoadFromStream(mem);


RE это Рич эдит. Копирует из одного Рича в другой...

Этот код работоспособный?! о_О На сколько я понимаю - вполне... но вот Билдер мне другое говорит... точнее вообще никаких действий. Разве что одно... при RichEdit1->Lines->LoadFromStream(mem); идет зачистка экрана но ничего (из данных) не появляется...
PM MAIL   Вверх
artsb
Дата 16.5.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Kirgston @  16.5.2009,  00:30 Найти цитируемый пост)
код не изменял... 

Напрашивается вопрос: "а что изменил?" smile

Добавлено @ 01:18
Цитата(Kirgston @  16.5.2009,  01:16 Найти цитируемый пост)
Этот код работоспособный?! о_О На сколько я понимаю - вполне... но вот Билдер мне другое говорит... точнее вообще никаких действий. Разве что одно... при RichEdit1->Lines->LoadFromStream(mem); идет зачистка экрана но ничего (из данных) не появляется... 

Рабочий. После:
Код

RE->Lines->SaveToStream(mem);

напиши:
Код

mem->Position = 0;

И не забывай больше smile

Это сообщение отредактировал(а) artsb - 16.5.2009, 01:19


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kirgston
Дата 16.5.2009, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



ФУУУУУУУУУУУУУУУУУУХХХХХХХ!!!!!! СПАСИБИЩА!!! 
Просто даже не додумался... что оно пишет и какбы не перематывает.... омг..... 7.5 часов! =) даааааа теперь уж забудешь про такое )))))))))

Всё работает! Даже сеть =) ОГРОМНОЕ СПАСИБО!

З.Ы. у меня бывают непонятные глюки =) виной всему мб комп.... тоже щас было с сокетами. Теперь всё хорошо =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.