Wprowadzenie do programowania gniazd w PHP
Wszystkie języki programowania zapewniają mechanizm implementacji komunikacji między serwerem a klientem. Zgodnie z tym mechanizmem aplikacja umożliwia serwerowi i klientowi wymianę danych między nimi. Podobnie jak inne języki programowania, PHP zapewnia nam również ten mechanizm. Programowanie przez gniazdo można zdefiniować jako podejście programowania, w którym serwer i klient są aplikacją, w której należy ustanowić połączenie między nimi, aby ułatwić komunikację między nimi. Pod względem PHP pozwala nam również zaimplementować koncepcję programowania gniazd. W tym artykule dowiemy się, jak zaimplementować programowanie gniazd za pomocą języka programowania PHP.
Metody klasy gniazd
Metody klasy gniazd to specjalne funkcje, które pozwalają nam zaimplementować programowanie gniazd. Program, który należy napisać, aby wprowadzić funkcje programowania gniazd, korzysta ze wstępnie zdefiniowanych funkcji gniazd. Funkcje te składają się z instrukcji, które pełnią rzeczywistą rolę w programowaniu gniazd. Poniżej znajdują się niektóre funkcje gniazd.
- Socket_accept: Jest to jedna z bardzo powszechnych funkcji gniazd używanych do akceptowania połączenia na gnieździe. Podstawową rolą tej funkcji jest akceptowanie połączenia za każdym razem, gdy trafi żądanie.
- Socket_addrinfo_bind: Ta funkcja służy do dodawania dostarczonych informacji do gniazda. Zaakceptowane informacje należy przypisać do gniazda, aby ułatwić jego wdrożenie.
- Socket_clear_error: Ta funkcja służy do usunięcia błędu występującego w gnieździe. Oprócz tego funkcja ta usuwa również błąd ostatniego kodu.
- Socket_close: Jak sama nazwa wskazuje, ta funkcja służy do zamykania zasobu, który należy do gniazda.
- Socket_connect: Ta metoda służy do utworzenia połączenia gniazdowego. W programowaniu gniazd program rozpoczyna się od ustanowienia połączenia, które można wykonać za pomocą tej funkcji.
- Socket_create: Ta metoda dotyczy tworzenia gniazda. Gniazdo utworzone za pomocą tej metody działa jako punkt końcowy połączenia.
- Socket_create_listen: Ta funkcja służy do otwarcia gniazda określonego portu, który akceptuje połączenie. Jak sama nazwa wskazuje, pomaga w otwarciu gniazda do słuchania.
- Socket_create_pair: Ta metoda jest zwykle używana w aplikacji, która musi wykorzystać złożoną część programowania gniazd. Pomaga w tworzeniu nierozróżnialnych gniazd, które są przechowywane w tablicy.
- Socket_get_option: Ta metoda służy do uzyskania opcji dla gniazda. Gniazdo składa się z kilku opcji, z których należy korzystać zgodnie z aplikacją. Korzystając z tej metody, możemy uzyskać wszystkie opcje, które posiada gniazdo.
- Socket_getsockname: Ta metoda służy do zapytania o region lokalny wybranego gniazda, aw zamian może uzyskać szczegółowe informacje dotyczące hosta / portu lub ścieżki systemu plików Unix. Jakikolwiek wynik uzyska, zależy całkowicie od rodzaju.
Przykład klienta gniazda
W tej sekcji zobaczymy kod, który zostanie użyty do wdrożenia programowania gniazd po stronie klienta. Poniższy przykład będzie zawierał informacje o poście i hoście, które zostaną użyte do utworzenia połączenia gniazda. Po ustanowieniu połączenia wymienia niektóre wiadomości i oczekuje odpowiedzi od serwera.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
$hello_msg= "This is server";
echo "Hitting the server :".$hello_msg;
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create connection with socket\n");
$server_connect = socket_connect($socket_creation, $IPadress_host, $port_number) or die("Unable to create connection with server\n");
socket_write($socket_creation, $hello_msg, strlen($hello_msg)) or die("Unable to send data to the server\n");
$server_connect = socket_read ($socket_creation, 1024) or die("Unable to read response from the server\n");
echo "Message from the server :".$server_connect;
socket_close($socket_creation);
?>
W powyższym przykładzie numer portu to 1230, w którym program próbuje się połączyć. Adres IP hosta będzie adresem IP hosta lokalnego. Jeśli ktoś chce współpracować ze zdalnym serwerem, może podać adres IP serwera. Następnie wiadomość zostanie wysłana na serwer, który zostanie wyświetlony na stronie odpowiedzi. Utworzenie gniazda zostanie przetworzone później. W tym programie istnieje odpowiedni mechanizm do obsługi błędu za pomocą metody die. Jeśli coś poszło nie tak, metoda matrycy zostaje odwołana i pojawia się komunikat.
Przykład serwera gniazd
Przykładem opisanym w tej sekcji będzie kod PHP, który zostanie wykorzystany do wdrożenia programowania gniazd po stronie serwera. Szczegóły adresu IP i numeru portu zastosowane w ostatnim przykładzie również pozostaną takie same w tym przykładzie. Główną różnicą w tym przykładzie będzie podstawowa różnica, która oddziela ją od języka programowania gniazd po stronie klienta. Pozwala procesowi zrozumieć kod PHP do programowania gniazd po stronie serwera.
<_?php$port_number = 1230;
$IPadress_host = "127.0.0.1";
set_time_limit(0);
$socket_creation = socket_create(AF_INET, SOCK_STREAM, 0) or die("Unable to create socket\n");$socket_outcome = socket_bind($socket_creation, $IPadress_host, $port_number ) or die("Unable to bind to socket\n");
$socket_outcome = socket_listen($socket_creation, 3) or die("Unable to set up socket listener\n");
$socketAccept = socket_accept($socket_creation) or die("Unable to accept incoming connection\n");
$data = socket_read($socketAccept, 1024) or die("Unable to read input\n");
$data = trim($data);
echo "Client Message : ".$data;
$outcome = strrev($data) . "\n";
socket_write($socketAccept, $outcome, strlen ($outcome)) or die("Unable to write output\n");
socket_close($socketAccept);
socket_close($socket_creation);
?>
W powyższym przykładzie program został opracowany do pracy w localhost. Wspomniany tutaj adres IP należy do hosta lokalnego, a numer portu może na nim obsługiwać usługi TCP i UDP. Pierwszym krokiem jest zawsze utworzenie gniazda, ponieważ będzie ono używane w całym programie. Później gniazdo zostało powiązane z określonymi wartościami, które pomogą w funkcjonowaniu. Metody zastosowane w tym programie mają wstępnie zdefiniowane znaczenie, które można wykorzystać do określonego celu. Gdy wszystko pójdzie dobrze, program będzie działał odpowiednio i ostatecznie zamknie połączenie z gniazdem.
Wniosek - Programowanie gniazd w PHP
Język programowania gniazd pozwala aplikacji działać na serwerze i modelu klienta. Takie podejście do programowania pozwala nam ustanowić połączenie między serwerem a klientem, aby ułatwić wymianę danych. Aby programowanie gniazd było łatwe i wygodne, PHP udostępnia predefiniowane metody, w których wszystkie metody mają przypisane unikalne zadania.
Polecane artykuły
Jest to przewodnik po programowaniu gniazd w PHP. W tym miejscu omawiamy metody, które pozwalają nam implementować programowanie gniazd i jak umożliwia serwerowi i klientowi wymianę danych między nimi. Możesz także przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -
- Wprowadzenie do enkapsulacji w PHP
- Konstruktor w PHP | Rodzaje konstruktorów
- Co to jest nadpisywanie w PHP?
- Stałe magiczne PHP
- Funkcja rekurencyjna PHP
- Przykłady funkcji łańcuchowych PHP
- Przewodnik po programowaniu gniazd w Javie