Uvod u Socket programiranje u PHP-u
Svi programski jezici pružaju mehanizam za implementaciju komunikacije poslužitelja i klijenta. Prema ovom mehanizmu, aplikacija omogućuje poslužitelju i klijentu da razmjenjuju podatke između njih. Slično drugim programskim jezicima, PHP nam pruža i ovaj mehanizam. Socket programiranje može se definirati kao pristup programiranju koji poslužitelj i klijent imaju kao aplikacija gdje se mora uspostaviti veza između njih oba kako bi se olakšala komunikacija između njih. U pogledu PHP-a to nam omogućava i da implementiramo koncept socket programa. U ovom ćemo članku naučiti kako implementirati to socket programiranje pomoću programskog jezika PHP.
Metode klase utičnica
Metode klase utičnica su posebne funkcije koje nam omogućuju implementaciju programiranja utičnice. Program koji mora biti napisan kako bi se donijele funkcionalnosti programa socket koristi unaprijed definirane funkcije utičnice. Ove se funkcije sastoje od izjava koje izvode stvarnu ulogu u programiranju socket-a. Ispod su neke od funkcija utičnice.
- Socket_accept: Ovo je jedna od vrlo uobičajenih funkcija utičnice koja se koristi za prihvaćanje veze na utičnicu. Primarna uloga ove funkcije je da veza bude prihvaćena kad god dođe zahtjev.
- Socket_addrinfo_bind: Ova se funkcija koristi za dodavanje ponuđenih informacija u utičnicu. Prihvaćene informacije moraju se dodijeliti utičnici kako bi se olakšala njegova implementacija.
- Socket_clear_error: Ova se funkcija koristi za uklanjanje pogreške koja postoji na utičnici. Uz to, ova funkcija uklanja i pogrešku na zadnjem kodu.
- Socket_close: Kao što ime navodi, ova se funkcija koristi za zatvaranje resursa koji pripada socketu.
- Socket_connect: Ova metoda se koristi za stvaranje veze na utičnicu. U programiranju utičnice program započinje uspostavljanjem veze koja se može ostvariti pomoću ove funkcije.
- Socket_create: Ova metoda se bavi stvaranjem utičnice. Socket stvoren ovom metodom radi kao krajnja točka veze.
- Socket_create_listen: Ova se funkcija koristi za otvaranje utičnice određenog porta koji prihvaća vezu. Kao što ime kaže, pomaže u otvaranju utičnice za slušanje.
- Socket_create_pair: Ova se metoda obično koristi u aplikaciji koja treba koristiti kompleksni dio programiranja socke . Pomaže u stvaranju nerazlučivih utičnica i one su spremljene u nizu.
- Socket_get_option: Ova metoda koristi se za dobivanje opcija za utičnicu. Utičnica se sastoji od nekoliko opcija koje se moraju koristiti u skladu s primjenom. Upotrebom ove metode možemo dobiti sve one mogućnosti koje utičnica ima.
- Socket_getsockname: Ova metoda koristi se za ispitivanje lokalne regije odabrane utičnice, a zauzvrat, ona može dobiti detalje povezane s hostom / portom ili stazom datotečnog sustava Unix. Koji god ishod da dobije, potpuno ovisi o vrsti.
Primjer socket klijenta
U ovom ćemo dijelu vidjeti kod koji će se primijeniti za programiranje utičnice na strani klijenta. Primjer naveden u nastavku sadrži podatke o postu i hostu koji će se koristiti za stvaranje veze utičnice. Jednom kada se uspostavi veza, razmjenjuju se neke poruke i očekuje se odgovor od poslužitelja.
<_?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);
?>
U gornjem primjeru, broj porta je 1230 u koji se program pokušava povezati. IP adresa domaćina bit će IP lokalnog domaćina. Ako je netko spreman komunicirati s udaljenim poslužiteljem, može spomenuti IP adresu poslužitelja. Tada će poruka biti poslana na poslužitelj koji će biti prikazan na stranici odgovora. Stvaranje utičnice naknadno će biti obrađeno. U ovom programu postoji odgovarajući mehanizam za rješavanje pogreške pomoću metode die. Ako nešto pođe po zlu u tom slučaju, metoda die se opoziva i poruka data u tom se pojavljuje.
Primjer socket poslužitelja
Primjer detaljan u ovom odjeljku sadrži PHP kodove koji će se koristiti za implementaciju socket programa na strani poslužitelja. Pojedinosti IP-a i broja porta koji se koriste u posljednjem primjeru ostat će isti u ovom primjeru. Glavna razlika u ovom primjeru bit će osnovna razlika koja ga razdvaja od programskog jezika utičnice na strani klijenta. Omogućuje proces razumijevanja PHP koda za programiranje utičnice na strani poslužitelja.
<_?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);
?>
U gornjem primjeru program je razvijen za rad u localhostu. IP adresa spomenuta ovdje pripada localhostu i broj porta može na njemu pokrenuti TCP i UDP uslugu. Početni korak je uvijek stvaranje utičnice, jer će se to koristiti u cijelom programu. Kasnije je utičnica spojena s navedenim vrijednostima koje će pomoći u funkcioniranju. Metode korištene u ovom programu imaju unaprijed definirano značenje koje se može koristiti za određenu svrhu. Kad sve pođe dobro, program će raditi u skladu s tim i na kraju će zatvoriti utičnicu.
Zaključak - Programiranje utičnica u PHP-u
Socket programski jezik koristi se da bi aplikacija mogla raditi na poslužitelju i modelu klijenta. Ovaj pristup programiranja omogućava nam uspostavljanje veze između poslužitelja i klijenta kako bi razmjena podataka mogla biti lakša. Kako bi programiranje socket-a bilo lako i praktično, PHP je osigurao unaprijed definirane metode u kojima sve metode imaju zadane jedinstvene zadatke.
Preporučeni članci
Ovo je vodič za programiranje utičnica na PHP-u. Ovdje ćemo raspravljati o metodama koje nam omogućuju implementaciju socket programa i kako omogućuje poslužitelju i klijentu da razmjenjuju podatke između njih. Možete i pogledati naše druge povezane članke da biste saznali više -
- Uvod u enkapsulaciju u PHP-u
- Konstruktor u PHP-u | Vrste konstruktora
- Što je prevladavanje u PHP-u?
- PHP magične konstante
- PHP rekurzivna funkcija
- Primjeri PHP string string funkcija
- Vodič za programiranje utičnica na Javi