TClientSocket и его метод Open в новом потоке

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
MiReQ
Сообщения: 28
Зарегистрирован: 13 май 2009, 13:06
Откуда: Россия, Пермь
Контактная информация:

Добрый день всем.

Среда: Borland C++ Builder 6.0

Проблема в следующем:
Есть у меня ClientSocket1.
Я пытаюсь программно завести еще один сокет по его образу и подобию в отдельном потоке, но вдохнуть в него жизнь не выходит (не подключается).
Ставил breakpoint'ы: в onLookup заходит, в onConnecting уже нет.

Свойства ClientSocket1:

Код: Выделить всё

Active = False
ClientType = ctNonBlocking
Host = 'mireq.z52.ru'
Port = 80
сам код:

Код: Выделить всё

typedef struct
{
 TClientSocket* sock;
...
} TConnection;

DWORD WINAPI going(LPVOID p)
{
 ...
       TConnection* c=new TConnection;
       c->sock = new TClientSocket(Form1);
       c->sock->Name="csock"+IntToStr((int)c);

       c->sock->ClientType=   Form1->ClientSocket1->ClientType;
       c->sock->Host=         Form1->ClientSocket1->Host;
       c->sock->Port=         Form1->ClientSocket1->Port;
       c->sock->Address=      Form1->ClientSocket1->Address;
       c->sock->Service=      Form1->ClientSocket1->Service;
       c->sock->OnConnect=    Form1->ClientSocket1->OnConnect;
       c->sock->OnConnecting= Form1->ClientSocket1->OnConnecting;
       c->sock->OnRead=       Form1->ClientSocket1->OnRead;
       c->sock->OnDisconnect= Form1->ClientSocket1->OnDisconnect;
       c->sock->OnWrite=      Form1->ClientSocket1->OnWrite;
       c->sock->OnError=      Form1->ClientSocket1->OnError;
       c->sock->OnLookup=     Form1->ClientSocket1->OnLookup;

       c->sock->Tag=(int)c;
...
       c->sock->Open();
      }
    }
  }
...
}
Ответить