|
W tym artykule chcę przybliżyć program oparty na TCP/IP... Do takiej komunikacji potrzebne są oczywiście 2 komputery, czyli potrzebne będą 2 programy. Nazywają się one : 'Klient' i 'Serwer' (ang. 'Client' and 'Server'). Zasada ich działania jest bardzo prosta. Otóż Client wysyła do Server'a tekst (String), a ten mu odpowiada tym samym... Przypis: Poniższy przykład zbudowano w Delphi 6 PE 1. Client Zacząłem od Klienta, gdyż wydaje mi się, że jego budowa jest prostsza i łatwiejsza do zrozumienia. Do budowy naszego Klienta użyję TClientSocket (w Delphi 6 PE - zakładka INTERNET). Sprawdźmy teraz co oznaczają poszczególne jego własności: - Active : Kiedy nasz Client jest Active := true, to będzie jak sama nazwa wskazuje aktywny i gotowy do nawiązania połączenia z Serwerem... W przypadku FASLE jego działanie będzie wyłączone. - Address : To jest najważniejsza część budowy Client'a. Ta własność odpowiada za Adres komputera na którym znajduje się nasz Serwer. W tym polu deklarujemy Adres IP komputera, na którym stoi nasz Serwer lub '127.0.0.1' <=- to jest LocalHost, czyli nasz komputer... :). - ClientType ctBlocking: Tą kwestię narazie pomijam, gdyż nie będzie miała ona znaczenia przy działaniu naszego programu. - Host : To pole sugeruję zostawić puste... Jeśli znasz Host komputera, możesz tam wpisać Adres IP (adres IP jest kombinacją 4-bajtowych wartości np. 217.30.140.17) lub (np. www.astalavista.box.sk lub cs1.mit.edu). - Port : Zrozumienie pojęcia PORT jest niezbędne do budowy programu Client -=> Server. Port jest wartością numeryczną potrzebną do obustronnej komunikacji między Klientem i Serwerem. Port można przedstawić jako "drzwi", do przez które Client chce "wejść" do Server'a. Każdy Server wykonuje poszczególne zadania na innym porcie np. odbiera pocztę na 110, wysyła na 25, a strony www pokazuje na 80... Oczywiście w naszym programie to my ustalamy na jakim porcie chcemy ustawić naszą komunikację. Wybierzmy sobie np. 1205... W tym momencie ustawiliśmy już najważniejsze punkty budowy naszego Client'a. Teraz ustaw na formie Button i Edit. Komponentu Edit służyć nam będzie jako pole zawierające Adres IP server'a. Zdarzenie OnClick Button'a uzupełniamy następująco: ClientSocket1.Address := Edit1.Text; ClientSocket1.Active := True; ClientSocket1.Open;Wywyższy kod Client'a pobiera z Edit1 numer IP komputera - Servera, uaktywnia się i otwiera (można wstawić również Edit2, który będzie przechowywał numer portu). Następnie wstaw Button2 i w OnClick uzupełnij: ClientSocket1.Socket.SendText('Działa :))))))');
{ oczywiście możemy ten tekst modyfikować lub
najlepiej wstawić kolejny Edit i wtedy
uzupełnićClientSocket1.Socket.SendText(Edit3.text) } W ten sposób Client wysyła do Server'a tekst o treści 'Działa :))))))'... Ale oczywiście w tej fazie naszego projektu nic nie działa... :( . Dlaczego? Gdyż nie mamy Serwera 2. Server Cała budowa będzie się opierać na komponencie TServerSocket. Przeanalizujmy sobie jego właściwości: - Active : Oczywiście uaktywnia Serwer... - Port : Musi być identyczny jak w Cliencie. Wstaw na formę Label1 i w zdarzeniu OnClientRead Server'a wpisz: Label1.Caption := Socket.ReceiveText;Wstaw następnie Button i w OnClick: Serversocket1.Active := true;Kompilujemy teraz 2 nasze programy... i uruchamiamy W cliencie uzupełniamy pole ADRES_IP (edit1) i aktywujemy przez naciśnięcie Button'a. Teraz uruchamiamy Server i aktywujemy go... Nie pozostaje nam nic, jak tylko przesłać tekst z Client'a (Button2) do Server'a... I co, działa? W ten sposób zbudowałeś swój pierwszy program oparty na TCP/IP :) ...powrót |