Programowanie warstwy sieciowej za pomocą obiektów INDY (komponenty otwarte) Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot: Programowanie warstwy sieciowej
KOMPONENTY OTWARTE - INDY Komponenty te obsługują programowanie gniazdkowe niskiego poziomu oraz większość powszechnie znanych protokołów internetowych. Borland, w celu zastąpienia „przestarzałych komponentów : TCS ,TSS, zaproponował stosowanie odpowiednich komponentów INDY. Dostarcza kolekcję internetowych otwartych obiektów, które poprzednio nazywane były WinShoes (termin pochodzi od WinSock – nazwy biblioteki gniazdowej Windows).
KOMPONENTY OTWARTE - INDY Najnowsze wersje otwartych komponentów Indy znaleźć można pod adresem internetowym: http://www.indyproject.org Są to darmowe komponenty uzupełnione wieloma przykładami oraz plikami pomocy.
KOMPONENTY OTWARTE - INDY Komponenty Indy rozpoznawane są po przedrostku „Id”. Pakiety INDY zawiera ponad 100 obiektów zawierających aplikacje klient – serwer TCP/IP dla rozmaitych komponentów, zawiera składniki związane z ‘Zapewnieniem bezpieczeństwa’ oraz kodowaniem ich w sposób asynchroniczny, co nie powoduje blokowania realizacji innych fragmentów kodu aplikacji sieciowej.
KOMPONENTY OTWARTE - INDY Komponenty te obsługują takie protokoły jak: TCP/IP UDP – bez połeczęniowe Protokoły kontroli poprawności połączeń: ICMP(Internet Control Message Protocol) Protokoły zarządzania siecią (email): SNMP (Simple Network Managament Protocol) Protokoły zdalnego włączania się do sieci: TELNET (Network Terminal Protocol) Protokoły przesyłania plików FTP (File Trnasfer Protocol)
KOMPONENTY OTWARTE - INDY Komponenty INDY znajdują się na zakładce : Operacje gniazdowe wykonywane z poziomu Indy, powinny być wykonywane za pomocą wątku albo komponentu IdAntiFreeze stanowiącego prostszą alternatywę . Serwery Indy wykorzystują architekturę wielowątkową, którą sterować można za pomocą komponentu IdThreadMgrDefault. Komponent ten jest domyślnym obiektem, drugi obiekt idThreadMgrPool obsługuje odpytywanie wątków.
KOMPONENTY OTWARTE - INDY Komponenty INDY w praktyce Delphi umożliwia zestawić prostą komunikację dwóch Programów przez gniazdo w obszarze sieci poprzez zastosowanie komponentów IdTCPClient oraz IdTCPServer. Pierwszym krokiem zmierzającym do uzyskania w/w komunikacji jest ustalenie wspólnego portu zarówno dla aplikacji klient jak i serwer
KOMPONENTY OTWARTE – INDY KLIENT
KOMPONENTY OTWARTE - INDY Do metod obiektu klienta należą: Port ( wartość int 3500) Host (adres serwera np.: localhost 127.0.0.1) Connect (aktywacja połończenia z serwerem) Conected (wartosc boolean nawiązania połonczenia stosowana w warunku if) Write (wysłanie ciągów tekstu do serwera) WriteLn( wysłanie lini tekstu zakończonego \n ) Read (odczyt ciagu tekstu z serwera) ReadLn (odczyt lini tekstu z serwera zakończonego \n) Disconnect (rozłonczenie z serwerem)
KOMPONENTY OTWARTE - INDY
KOMPONENTY OTWARTE – INDY SERWER
KOMPONENTY OTWARTE – INDY Metody Serwera DefaultPort ( podanie domyślnego portu pracy serwera) Active (uruchomienie i ustawienie serwera w nasłuch na klientów) AThread wątek dzięki któremu mamy dostęp do metody Connection (połąnczenie) AThread.Connection.ReadLn (odczytanie przez serwera informacji przesłaniej od klienta) AThread.Connection.Writeln (zapis przez serwer informacji przesłanej do klienta)
KOMPONENTY OTWARTE – INDY Zdarzenia serwera Connect(AThread: TIdPeerThread); (klient podłonczony do serwera) Server1Execute(AThread: TIdPeerThread); (serwer w trakcie wykonywania)
KOMPONENTY OTWARTE – INDY
KOMPONENTY OTWARTE – INDY
KOMPONENTY OTWARTE – INDY Program Komunikacja klient - serwer
Czas na Pytania :) Dziękuje za uwagę. Jeśli są jakieś pytania, postaram się na nie odpowiedzieć. Dziękuje za uwagę.