Поиск:

Ответ в темуСоздание новой темы Создание опроса
> компоненты TClientSocket TServerSocket, подробнее 
:(
    Опции темы
Dubinsky
Дата 22.7.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



TClientSocket TServerSocket компоненты работающие с ТСР/IР

вот что мне хотелось бы знать :

если я хочу переслать двоичные данные , мне следует использовать SendText метод или есть ещё какие то ?

как и зачем работает ClientSocket->Socket->SendStream ?

в чём различие свойств stThreadBlocking stNonBlocking ?


PM MAIL WWW   Вверх
Dubinsky
Дата 22.7.2005, 18:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



да и кстати , передавая текст , он при быстрой передаче склеивал на выходе информацию ... т.е. посылаю 10 сообщений а приходит одно но длинное .
как сделать так чтобы он различал их ?
PM MAIL WWW   Вверх
LenaKi
Дата 25.7.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может эта дискусия поможет разобраться
http://forum.codenet.ru/showthread.php?s=&...ighlight=lenaki
PM MAIL   Вверх
LenaKi
Дата 25.7.2005, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



PM MAIL   Вверх
Dubinsky
Дата 25.7.2005, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



хммм скачал пример с народа (http://devnvd.narod.ru/) а он у меня при компиляции выдаёт :

Assertion failed
<unknown application> File:Appcore.cpp,line 85
abort retry ignore

прикол не ясен , был у меня пример на МСВЦ и тоже самое выдавал , ну я грешным делом подумал несовместимость , а тут на Бульдере пример , что то делаю не так ?

PM MAIL WWW   Вверх
LenaKi
Дата 25.7.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не могу Вам дать ответ, потому что не использовала пример с http://devnvd.narod.ru/ просто, когда я искала информацию об этих компонентах на других форумах, мне все советовали именно этот пример.

P.S. Основательно намучавшись с пересылкой файлов через эти компоненты, я в конечном итоге организовала пересылку через компоненты Indy.

PM MAIL   Вверх
Dubinsky
Дата 25.7.2005, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



интересно , интересно , а в чём плюсы Indy и отличие от тех же TClientSocket TServerSocket ?

а пример , да он тот же самый который у меня на МСВЦ был , слегка переделанный , глючат одинаково видимо встроенный транслятор Борланда не ахти ... не судьба значит.



PM MAIL WWW   Вверх
LenaKi
Дата 25.7.2005, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>интересно , интересно , а в чём плюсы Indy и отличие от тех же TClientSocket TServerSocket ?

Пересылка файлов через Indy организовывается несколькими строчками кода, а в TClientSocket TServerSocket у меня то пересылалось, то ошибки вываливались если файл большой, потратив несколько дней перешла на Indy для пересылки файлов, а текстовые сообщения по прежнему в моем приложении пересылают компоненты TClientSocket TServerSocket. Конечно, есть решение и для TClientSocket TServerSocket чтобы не было проблем с пересылкой двоичных файлов, но мне работающий пример на файлах большого размера найти не удалось для TClientSocket TServerSocket .


PM MAIL   Вверх
Dubinsky
Дата 25.7.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



smile на Инди пожалуйста
PM MAIL WWW   Вверх
LenaKi
Дата 25.7.2005, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

Отправка:



--------------------------------------------------------------------------------
if(OpenDialog1->Execute()){
try{
IdTCPClient1->Connect();
IdTCPClient1->WriteLn(OpenDialog1->FileName);
TFileStream *f = new TFileStream(OpenDialog1->FileName,fmOpenRead);
Screen->Cursor = crHourGlass;
IdTCPClient1->OpenWriteBuffer();
IdTCPClient1->WriteStream(f,true,true);
Screen->Cursor = crDefault;
IdTCPClient1->CloseWriteBuffer();
delete f;
IdTCPClient1->Disconnect();
}
catch(...)
{
ShowMessage("Не удалось!");
return;
}

}

--------------------------------------------------------------------------------



Прием:



--------------------------------------------------------------------------------

void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{


AnsiString C_Path = "C:\\CHAT\\" + ExtractFileName(AThread->Connection->ReadLn());


TFileStream *f;

if(!FileExists(C_Path)){
f = new TFileStream(C_Path,fmCreate);
}
else
{
f = new TFileStream(C_Path,fmOpenWrite);
}


AThread->Connection->ReadStream(f,-1,true);
delete f;

}


PM MAIL   Вверх
Dubinsky
Дата 25.7.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



уфф за пример спасибо , только что то файл искаженный приходит ...
к нему сначала приписывается мусор всё время один и тот же " :"
PM MAIL WWW   Вверх
LenaKi
Дата 26.7.2005, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Странно, у меня все нормально приходит и видео и текстовые...
PM MAIL   Вверх
Dubinsky
Дата 28.7.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот , конкретизирую вопрос , возвращаюсь к TClientSocket TServerSocket ...

вся проблема у меня была как я понял из-за неспособности определить начало-конец сообщения в общем потоке сообщений .

В одном примере концом сообщения служил сам дисконнект , а возможны варианты без дисконнекта делить сообщения ?
PM MAIL WWW   Вверх
OrpVrest
Дата 12.2.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

void SendForm::ReadMessages()
{
   try{
    while (true){
        MemoMessage->Lines->Add(TcpClient->Receiveln());
     }
  }
  catch (Exception &exception) {
    MemoMessage->Lines->Add("Error");
  }
}


При выполнении данного фрагмента приложение зависает, как бороться?
PM MAIL   Вверх
DominiK
Дата 21.4.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.3.2007
Где: Россия, Омск

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



Цитата(LenaKi @ 25.7.2005,  16:45)
Код

Отправка:



--------------------------------------------------------------------------------
if(OpenDialog1->Execute()){
try{
IdTCPClient1->Connect();
IdTCPClient1->WriteLn(OpenDialog1->FileName);
TFileStream *f = new TFileStream(OpenDialog1->FileName,fmOpenRead);
Screen->Cursor = crHourGlass;
IdTCPClient1->OpenWriteBuffer();
IdTCPClient1->WriteStream(f,true,true);
Screen->Cursor = crDefault;
IdTCPClient1->CloseWriteBuffer();
delete f;
IdTCPClient1->Disconnect();
}
catch(...)
{
ShowMessage("Не удалось!");
return;
}

}

--------------------------------------------------------------------------------



Прием:



--------------------------------------------------------------------------------

void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{


AnsiString C_Path = "C:\\CHAT\\" + ExtractFileName(AThread->Connection->ReadLn());


TFileStream *f;

if(!FileExists(C_Path)){
f = new TFileStream(C_Path,fmCreate);
}
else
{
f = new TFileStream(C_Path,fmOpenWrite);
}


AThread->Connection->ReadStream(f,-1,true);
delete f;

}


Код

void scr()
 {
TIdTCPClient *IdTCPClient1;
HDC ScreenDC;
TCanvas *Canvas=new TCanvas;
Graphics::TBitmap *bmp = new Graphics::TBitmap();
TJPEGImage *jp = new TJPEGImage();
try
{
ScreenDC=GetDC(NULL);
Canvas->Handle=ScreenDC;
bmp->Width=Screen->Width;
bmp->Height=Screen->Height;
bmp->Canvas->CopyRect(Rect(0,0,Screen->Width,Screen->Height),
                        Canvas,Rect(0,0,Screen->Width,Screen->Height));
jp->Assign(bmp);
jp->CompressionQuality=50;
jp->Compress();
//-----------------------
SYSTEMTIME systime;
GetLocalTime(&systime);
AnsiString namefile;
namefile=AnsiString(systime.wDay) +".jpg";


Как мне дальше добавить этот jpeg в отправку на север? smile 

Это сообщение отредактировал(а) DominiK - 21.4.2007, 21:12
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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