Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Первести с С++ на Delphi, Indy 
V
    Опции темы
zhefran
Дата 28.9.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

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



Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

#include "UIndyMsg2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BPostClick(TObject *Sender)
{
 IdTCPClient1->Host = EHost->Text;
 try
 {
  try
  {
   IdTCPClient1->Connect();
   IdTCPClient1->WriteLn(EWho->Text);
   IdTCPClient1->WriteLn(Memo1->Text + '\0');
   RichEdit2->Lines->Add(FormatDateTime("",Now())+": " +
                         EWho->Text);
   RichEdit2->Lines->Add(Memo1->Text);
  }
  catch(...)
  {
   RichEdit2->Lines->Add("Ошибка соединения или передачи данных");
  }
 }
 __finally
 {
  IdTCPClient1->Disconnect();
 }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BSaveClick(TObject *Sender)
{
if(SaveDialog1->Execute())
 RichEdit2->Lines->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BClearClick(TObject *Sender)
{
RichEdit2->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  FlashWindow(Application->Handle,true);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ApplicationEvents1Activate(TObject *Sender)
{
 Timer1->Enabled = false;
}
//---------------------------------------------------------------------------



void __fastcall TForm1::BFileClick(TObject *Sender)
{
 if(OpenDialog1->Execute())
 {
  IdTCPClient1->Host = EHost->Text;
  try
  {
   try
   {
    IdTCPClient1->Connect();
    IdTCPClient1->WriteLn("Передача файла");
    IdTCPClient1->WriteLn(EWho->Text);
    IdTCPClient1->WriteLn(ExtractFileName(OpenDialog1->FileName));
    TFileStream *SF = new TFileStream(OpenDialog1->FileName.c_str(),
                                      fmOpenRead);
    IdTCPClient1->WriteStream(SF, true, true);
    SF->Free();
    RichEdit2->Lines->Add(FormatDateTime("",Now())+": " +
                          EWho->Text);
    RichEdit2->Lines->Add("Отправлен файл " + OpenDialog1->FileName);
    if(CheckBox1->Checked)
     RichEdit2->Lines->Add(IdTCPClient1->ReadLn());
   }
   catch(...)
   {
    RichEdit2->Lines->Add("Ошибка соединения или передачи данных");
   }
  }
  __finally
  {
   IdTCPClient1->Disconnect();
  }
 }
}
//---------------------------------------------------------------------------


void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
 if ( ! Application->Active )
 {
  Timer1->Enabled = true;
  Beep();
 }
 AnsiString SFrom, S;
 try
 {
  try
  {
   SFrom = AThread->Connection->ReadLn();
   if (SFrom == "Передача файла")
   {
    // Прием текста о передаваемом файле
    SFrom = AThread->Connection->ReadLn();
    RichEdit2->Lines->Add("Получено " + FormatDateTime("",Now()) +
                          ": " + AThread->Connection->Binding->PeerIP + " - \"" +
                          SFrom + "\"");
    S = AThread->Connection->ReadLn();
    RichEdit2->Lines->Add("Файл " + S);
    // Прием файла
    if(Application->MessageBox(("Пользователь " + SFrom +
                                " присылает вам файл "+
                                S +
                                ". Сохранить?").c_str(),
                                "Сохранение файла",
                                MB_YESNOCANCEL + MB_ICONQUESTION) == IDYES)
     {
      SaveDialog2->FileName = S;
      if(SaveDialog2->Execute())
      {
       TFileStream *SF = new TFileStream(SaveDialog2->FileName.c_str(),
                                         fmCreate);
       AThread->Connection->ReadStream(SF, -1, false);
       SF->Free();
       RichEdit2->Lines->Add("Принятый файл сохранен в " +
                             SaveDialog2->FileName);
      }
    }
    AThread->Connection->WriteLn("Файл " + S + " получен");
   }
   else
   {
     // Прием текстового сообщения
     S = AThread->Connection->ReadLn(CHAR0);
     RichEdit2->Lines->Add("Получено " + FormatDateTime("",Now()) +
                           ": " + AThread->Connection->Binding->PeerIP + " - \"" +
                           SFrom + "\"");
     RichEdit2->Lines->Add(S);
    }
  }
  catch(...)
  {
   RichEdit2->Lines->Add("Ошибка передачи данных");
  }
 }
 __finally
 {
  AThread->Connection->Disconnect();
 }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 IdTCPServer1->Active = true;
}
//---------------------------------------------------------------------------


Или простенький пример на Delphi IdTcpClient/IdTcpServer smile 
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
zhefran
Дата 8.10.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

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



Вопрос снят с повестки дня!
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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