Skip to content

AlfAleshkov/Client-Server-TestTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Client-Server-TestTask

Client-Server application, Sockets, Threads

Серверная часть - TestTaskServer.dpr
в виде простого консольного приложения

Клиентская часть - ClientProject.dpr, ClientUnit.pas, ClientUnit.dfm
Быстро накидал простую VCL-ку
Есть кнопка для подключения/отключения к сервеному приложению
Вторая кнопка - отправка пакета, впрочем ее нажимает таймер,
пока соединение активно

На сервере прикрутил для теста SQLite3, но и консольный вывод тоже дает понять,
что всё работает корректно

я оставил закомментированными строки
//Srv.OnClientConnect:=ClientConnect;
//Srv.OnClientDisconnect:=ClientDisconnect;
//Srv.OnClientRead:=ClientRead;
это был мой первый вариант реализации, в однопоточном режиме
он тоже работал корректно, но раз мы про потоки, сообразил,
переделал на stThreadBlocking

//IBQuery1.SQL.Clear;
//IBQuery1.SQL.Add('INSERT INTO TestTaskTable(client_id,data) VALUES ('+IntToStr(ClientSocket.SocketHandle)',"'+incomingData+'")');
//IBQuery1.ExecSQL;
эту часть оставил в закомментированном виде, как пример записи в БД через стандартные средства

WriteLn и запись в БД внутри критической секции во избежание состояния гонки

About

Client-Server application, Sockets, Threads. stThreadBlocking

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages