TCP/IP



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