проблема с TClientSocket в своём класе
От: Morpeh  
Дата: 04.04.07 04:27
Оценка:
пишу свой клас:


class TGetFile
{
private:
  TClientSocket*  FileSocket;
  void __fastcall OnClientSocketRead(TObject *Sender, TCustomWinSocket *Socket);
public:
  TGetFile(AnsiString ServerIP, int ServerPort);
  ~TGetFile();
};

//---------------------------------------------------------------------------
TGetFile::TGetFile(AnsiString ServerIP, int ServerPort)
{
  FileSocket = new TClientSocket(NULL);
  FileSocket->Active = false;
  FileSocket->Host = ServerIP;
  FileSocket->Port = ServerPort;
  FileSocket->ClientType = ctNonBlocking;
  FileSocket->OnRead = OnClientSocketRead;
  FileSocket->Open();
}
//---------------------------------------------------------------------------
TGetFile::~TGetFile()
{
  if(FileSocket->Active)
    while(FileSocket->Active)
    {
      Application->ProcessMessages();
      FileSocket->Close();
    }
  delete FileSocket;
}
//---------------------------------------------------------------------------

в проге следующие строчки

TGetFile *GetFile = new TGetFile("127.0.0.1", 7777);
//работа с классом
delete GetFile;


до сервера вообще ни каких действий...
молчит и всё.
Если же код создания сокета в самой проге написать то всё ок.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  FileSocket = new TClientSocket(NULL);
  FileSocket->Active = false;
  FileSocket->Host = "127.0.0.1";
  FileSocket->Port = 7777;
  FileSocket->ClientType = ctNonBlocking;
  FileSocket->Open();
}

В чём трабла?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.