|
Delphi TCP/IP logger/server example
Příklad jednoduchého TCP/IP loggeru napsaného v Borland Delphi 6 demonstruje jednoduchý server, reagující na navázání spojení, logující všechny důležité stavy (připojení, odpojení klienta, chyby v aplikaci) a příchozí data do dvou vstupních souborů. Tento příklad zároveň demonstruje přístup k registrům Windows, práci s INI soubory apod.
Jedná se o velmi jednoduchou aplikaci, která má pouze demonstrativní účely a lze ji plně využít pro tvorbu vašich vlastních aplikací. Pozornost je zaměřena hlavně na korektní řešení síťové části a obsluhu chyb při běhu programu.
Popis metod třídy TMainForm
- procedure DataSelectClick(Sender: TObject);
(* Tato rutina je volána tlačítkem DataSelect a dovolí uživateli vybrat výstupní soubor pro data *)
- procedure AccessSelectClick(Sender: TObject);
(* Rutina je volána tlačítkem AccessSelect a dovolí uživateli vybrat výstupní soubor pro stavová hlášení *)
- procedure AppEventsMinimize(Sender: TObject);
(* Call-back rutina obsluhující minimalizaci hlavního okna a jeho "uklizení" do systray *)
- procedure TrayIconDblClick(Sender: TObject);
(* Metoda, vyvolaná dvojklikem na ikonu v systray, obnovuje aplikaci a zobrazí hlavní okno serveru *)
- procedure FormCreate(Sender: TObject);
(* Rutina inicializující hlavní okno aplikace, stará se o načtení parametrů z INI souboru, "nahození" serveru apod. *)
- procedure TryConnect(Sender: TObject);
(* Metoda volaná při požadavku na aktivaci serveru, zneplatňuje také některá tlačítka *)
- procedure Disconnect(Sender: TObject);
(* Metoda volaná při požadavku na ukončení spojení, povoluje některá tlačítka a ovládací prvky hlavního okna *)
- procedure ServerSocketAccept(Sender: TObject;
Socket: TCustomWinSocket);
(* Tato metoda je volána po prvním spojení s klientem, má pouze statistický význam *)
- procedure ServerSocketClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
(* Metoda volaná Windows po ověření spojení s klientem, má pouze statistický význam *)
- procedure ServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
(* Metoda je volána systémem po uzavření spojení klientem, zapisuje tuto událost do souboru *)
- procedure ServerSocketClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
(* Call-back metoda, která reaguje na chyby ve spojení s klientem a zapisuje je do souboru, dále ukončuje spojení *)
- procedure AppEventsException(Sender: TObject; E: Exception);
(* Call-back metoda volaná při obnovitelné chybě aplikace nebo komunikace s klientem. Zapisuje chyby do souboru pro další ladění programu nebo spojení *)
- procedure FormDestroy(Sender: TObject);
(* Metoda provádí "generální úklid" při požadavku na ukončení aplikace *)
- procedure ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
(* Call-back rutina, která je volána po příchodu dat od klienta. Tato data uloží do souboru a zobrazí počet celkově přijatých znaků *)
- procedure WMMinimize( var E : TMessage );
(* Pomocná rutina, starající se o minimalizaci aplikace po startu programu. Využívá systémové zprávy a jejich řazení do fronty zpráv aplikace *)
- procedure AppendLog( Msg : string );
procedure AppendData( Msg : string );
(* Rutiny, starající se o zápis dat do souboru zpráv, resp. souboru přijatých dat *)
Download zdrojových kódů a spustitelného programu
-
dphi_server_example.zip
\Mail.pas, Mail.dfm, TCPIPlogger.dpr a ostatní zdrojové soubory
\Program\TCPIPlogger.exe, TCPIPlogger.ini
|