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:

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:

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:

Wstaw następnie Button i w OnClick:

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 🙂

Autor: Irvine