Klient-serwer Delphi oparty na gniazdach
Dziś temat w dziedzinieTechnologia informacyjna, poświęcona opracowaniu i wdrażaniu architektury klient-serwer. Wynika to z faktu, że systemy informacyjne różnych skal są coraz częściej wykorzystywane w różnych dziedzinach. Ponadto struktura dowolnej bazy danych jest tworzona zgodnie z określonymi parametrami iw taki sposób, że praca z nią w trybie normalnym jest możliwa tylko przy użyciu specjalnych aplikacji. W związku z tym wdrożenie architektury klient-serwer jest bardzo ważnym zadaniem, które powstaje przed działami technologii informatycznych w różnych lokalizacjach, których udane rozwiązanie pozwoli firmie działać optymalnie i sprawnie.
Serwer oparty na gnieździe
Serwer protokołów Socket,pozwala na jednoczesne przetwarzanie żądań od dużej liczby użytkowników. W takim przypadku administrator może w każdej chwili wprowadzić zmiany w ustawieniach, aby nałożyć ograniczenie liczby obsługiwanych użytkowników. Domyślnie ten parametr nie ma żadnych ograniczeń.
Po połączeniu klienta z serwerem otwiera sięoddzielny kanał z gniazdem, przez który wymieniane są dane. Jednak najbardziej optymalne i bezpieczne wdrożenie dotyczy każdego nowego połączenia specjalnego oddzielnego procesu.
Schemat pracy architektury "Klient - serwer"
Rozważmy bardziej szczegółowo schemat implementacji architektury, kolejno analizując często używane definicje
1. Właściwości ServerType i Port. Aby użytkownik mógł się połączyć z serwerem, należy upewnić się, że port używany zarówno przez serwer, jak i klienta jest zgodny. Jest to cel tego parametru, który jest wprowadzany we właściwości Port. Typ połączenia jest określony przez parametr ServerType.
2. Proces otwierania gniazda. Aby rozpocząć sesję klient-serwer, należy otworzyć gniazdo i port. Właściwość Listen jest używana.
3 Następnie dane są wymieniane z użytkownikiem. Podczas zamykania klient jest odłączony. Przy odpowiednim poleceniu administratora systemu, serwer wyłącza się, przerywając wszystkie ustanowione połączenia i kończąc proces oczekiwania na nowe połączenia.
Używanie TServerSocket w aplikacjach klient-serwer Delphi
Aby wysyłać i odbierać informacje odużytkownik używa zdarzeń OnClientWrite i OnClientRead. W takim przypadku użytkownik może wchodzić w interakcje z użytkownikiem za pomocą parametru takiego jak ClientSocket. Podczas pracy często stosowane są następujące metody i właściwości:
- liczba aktualnie podłączonych użytkowników;
- liczba aktywnych procesów;
- liczba wolnych procesów;
- port, nazwa hosta i lokalny adres IP;
- odblokuj i zablokuj gniazdo.
Podsumowując, często zwracaj uwagęWłaściwością specjalną jest Data. Ta właściwość ma zastosowanie w następującej sytuacji. Z reguły serwer jest używany do obsługi dużej liczby użytkowników, co oznacza, że istnieje potrzeba przechowywania informacji o każdym kliencie, a informacja ta powinna być powiązana z konkretnym gniazdem. W takich sytuacjach użycie wiązania ręcznego jest bardzo niewygodne, dlatego właściwość Data jest powszechnie używana. Należy jednak pamiętać, że dane to wskaźnik, dlatego ważne jest sprawdzenie, czy przestrzegane są wszystkie zasady pracy ze wskaźnikami (wskazanie typu, przydzielenie pamięci itp.).
Dokumentacja
Do tej pory literatura na temat rozwojuAplikacje klienckie Delphi związane z tworzeniem i użytkowaniem gniazd są bardzo mało reprezentowane. Dlatego do szczegółowego badania tego aspektu można odnieść się do dokumentacji na temat systemów Linux i Unix, ponieważ Obejmuje szczegółowo technologię wdrażania aplikacji przy użyciu gniazd, jednak z reguły w języku Perl lub C ++.