Dwie funkcje konwertujące polskie znaki z Windows-1250 na ISO-8859-2 i na odwrót.

Autor: Kkkas

Autor: cyberdemon

Najprostszym sposobem jest skorzystanie z systemowego polecenia URLDownloadToFile. Aby odwołać się do niego w uses wpisz URLMon, a następnie:

Autor: Nakiel

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

W tym artykule postaram się Wam wyjaśnić jak stworzyć prosty komunikator internetowy. Przedstawię jedynie działanie takiego komunikatora, nie będę podawał gotowego kodu źródłowego. Zakładam, że przeczytaliście już artykuł „Jak połączyć dwa komputery” i wiecie jak posługiwać się komponentami ClientSocket i TServerSocket.

Dobra… zaczynamy! W moim poprzednim artykule wyjaśniłem jak połączyć tylko dwa komputery (klienta z serwerem), teraz zajmiemy się serwerem który połączy kilka klientów.

Podejrzewam, że większość Was próbowała z serwerem (który napisaliśmy w artykule „Jak połączyć dwa komputery”) połączyć więcej niż jednego klienta. Efekt nie był zadowalający, bowiem gdy tak zrobimy, serwer będzie wysyłał wiadomość do ostatniego podłączonego klienta. Dzieje się tak, ponieważ zaprogramowaliśmy tak serwer! Ta linijka :

ma za zadanie wysłać do ostatniego „aktywnego połączenia”. Można się domyślić, że „ServerSocket.Socket.ActiveConnections” odpowiada za pobranie ilości podłączonych klientów. Jeśli zastosujemy pętle, serwer wyśle nam wiadomość do wszystkich klientów.

Stosując ten sposób otrzymamy prosty czat internetowy. Zmieniliśmy tylko kod źródłowy serwera, ale jeśli chcemy stworzyć komunikator musicie pogrzebać w kodzie źródłowym klienta. Trzeba wymyślić strukturę wysyłanego komunikatu do serwera. Powinien zawierać np. identyfikator (nick, id, itp.) osoby do której wysyła się tekst (żeby tekst nie był widziany przez wszystkich użytkowników), identyfikator osoby wysyłającej no i tekst który dana osoba chce wysłać. Przykład:

Potem tylko trzeba napisać prosty algorytm który odzieli dane, i przeszuka tabelę (z aktywnymi klientami) w poszukiwaniu danej osoby. Tabela powinna zawierać nick i „identyfikator” klienta (nick dla zidentyfikowania, a identyfikator do wysłania wiadomości, np.

Jak widać jest to dość proste i logiczne (przynajmniej dla mnie ;)). Ostatnio pisałem „ Komentator internetowy” podobny do tego co mają na Onet.pl – to jest przykładowe zastosowanie łączenia większej ilości klientów.

Pozdrawiam 🙂

Autor: Uno

Opisze w tym artykule jak stworzyć prostą aplikację umożliwiającą połączenie dwóch komputerów. Zaczynamy!

W delphi mamy dwa komponenty, które umożliwiają nam połączenie. Jest to TClientSocket i TServerSocket w palecie Internet. Żeby połączyć się do jakiegoś komputera potrzebny jest nam adres serwera IP i numer portu (od 0 do 65535).

Zrobimy program który będzie serwerem i program który będzie klientem. Serwer otwiera port klientowi, który za pomocą IP i numeru otwartego portu, łączy się z serwerem.

Stwórz nową aplikację i wstaw tam komponent TClientSocket i TServerSocket z palety Internet. Zmień ich nazwe na ClientSocket i ServerSocket. Teraz wstaw 2x na forme komponent Edit. Te dwa pola będą służyły do wpisywania adresu IP i portu. Teraz wstaw 2 przyciski. Ich caption zmień na Hostuj i Rozłącz. W przypadku pierwszego przycisku nazwa nie ma znaczenia, ponieważ wstawimy jeszcze 2 RadioButtony, dzięki którym użytkownik będzie mógł wybrać czy będzie klientem czy serwerem, jęzeli będzie serwerem to caption będzie Hostuj, jeżeli klientem caption będzie Połącz. Tak jak już wspomniałem wstaw 2 RadioButton-y. Pierwszemu nadaj caption Serwer, a drugiemu Klient. Dodaj jeszcze komponent Memo.

Zaczynamy pisać kod!

1) W inspektorze obiektów komponentu RadioButton 1 (serwer), znajdź opcje Checked, nadaj jej wartość true.

2) Wygeneruj zdarzenie OnClick komponentu RadioButton 1, i dopisz takie linijki:

3) Wygeneruj zdarzenie OnClick komponentu RadioButton 2, i dopisz takie linijki:

4) Wygeneruj zdarzenie OnClick, komponentu button1 (hostuj, połącz), i dopisz tam takie linijki:

5) Wygeneruj zdarzenie OnChange w komponecie Edit1 (IP), i dopisz tam takie linijki:

6)Wygeneruj zdarzenie OnChange w komponecie Edit3 (Port), i dopisz tam takie linijki:

Pierwszą część mamy już za sobą 🙂 Wpierwszej części utworzyliśmy sporo procedur, zasada działania tego programu jest bardzo prosta, najważniejszą rzeczą jest odzczytanie adresu IP i numeru Portu z pól tekstowych, i rozrużnianie czy dana osoba jest serwerem czy klientem. Co będziemy robić w części drugiej? Pamiętasz, stworzyliśmy komponent Memo, trzeba go jakoś wykorzystać 😉 Dzięki temu komponentowi będą wświetlać wiadomości od serwera, np. potwierdzenie przyjęcia klienta. Zaczynamy część drugą!

1)Zaznacz komponent ServerSocket i wygeneruj zdarzenie OnAccept i dopisz takie linijki:

2)Zaznacz komponent ClientSocket i wygeneruj zdarzenie OnRead i dopisz takie linijki:

3)Wygeneruj zdarzenie OnClose formy i dopisz takie linijki:

To by było na tyle, takie same linijki wpisz do zadarzenia OnClick Button2 (rozłącz). Poniżej prezentuje cały kod źródłowy programu:

Mam nadzieję że wszystko zrozumieliście, jak nie to piszcie e-maila uno11@poczta.onet.pl, lub skontaktujcie się ze mną przez gg: 3854058

Pozdrawiam
Uno

Autor: Uno

Load More