Вобщем есть сервер на TServerSocket работающий в блокирующем режиме и клиенты на TClientSocket. Когда клиент подключается к серверу, всё нормально, создаётся отдельный поток, идёт общение. С клиента хочу завершить соединение программно, делаю чтото вроде
SocketThread->ClientSocket->Active = false;
SocketThread->Terminate();
Но на сервере при этом поток не убивается! я думал ClientSocket->Connected обратится в false, но этого не происходит. Не знаю что и делать
Примерно так выглядит код сервера
void __fastcall TSocketThread::ClientExecute()
{
//..
TWinSocketStream *Stream = new TWinSocketStream(ClientSocket, 2000);
while (!Terminated && ClientSocket->Connected)
{
// тут всякий обмен
}
//..
}