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′ 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:
1 2 3 4 5 |
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:
1 2 3 4 5 6 |
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:
1 |
label1.caption := socket.ReceiveText; |
Wstaw następnie Button i w OnClick:
1 2 3 |
ServerSocket.Port := StrToInt(Edit1.Text); 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 🙂
Autor: Irvine