void __fastcall TMyServerThread::ClientExecute(void)
{
while (!Terminated && ClientSocket->Connected)
{
try
{
Form1->ClientSocket1->Open();
TWinSocketStream *pStream = new TWinSocketStream(ClientSocket, CLIENTWAITTIME);
try
{
char buffer[BUFFERSIZE];
memset( buffer, 0, sizeof(buffer) );
if(pStream->WaitForData(CLIENTWAITTIME))
{
if (pStream->Read(buffer, sizeof(buffer)) == 0)
ClientSocket->Close();
else
{
Form1->Memo1->Lines->Add(AnsiString("(Client) ") +AnsiString(buffer) );
Form1->ClientSocket1->Socket->SendText(buffer);
pStream->Write( buffer, sizeof(buffer));
}
// ...
// Process requests here.
// ...
ClientSocket->Close();
}
else
ClientSocket->Close();
}
__finally
{
delete pStream;
}
}
catch (...)
{
HandleException();
}
}
}
Partager