От клиентската страна:
- Слагаш TIdTCPClient(CliSock) и TIdAntiFreeze компоненти.
- Проверка, дали версиите на клиента и сървъра се различават. При разлика:
TFileStream *fs = new TFileStream(strNewExe,fmCreate);
try
{ CliSock->Connect();
CliSock->WriteLn("GetNewExe"); // Коментар-1
CliSock->ReadStream(fs,-1,false);
CliSock->Disconnect();
}
catch(Exception &e)
{ delete fs;
throw Exception(e.Message);
}
Коментар-1 - Сървъра трябва да "разбира" прости команди подадени като стрингове, Кодът от страна на сървъра ще изпрати новото ехе, само при получен стринг "GetNewExe". Нещата са опростени заради яснота.