Úvod do programování Socket v PHP
Všechny programovací jazyky poskytují mechanismus implementace komunikace serveru a klienta. Podle tohoto mechanismu aplikace umožňuje serveru a klientovi mezi nimi vyměňovat data. Podobně jako v jiných programovacích jazycích nám PHP poskytuje tento mechanismus. Programování soketu lze definovat jako přístup k programování, který má server a klienta jako aplikaci, kde musí být navázáno spojení mezi nimi, aby se usnadnila komunikace mezi nimi. Pokud jde o PHP, umožňuje nám také implementovat koncept programování soketů. V tomto článku se naučíme, jak implementovat toto programování soketů pomocí programovacího jazyka PHP.
Metody třídy Socket
Metody třídy soketů jsou speciální funkce, které nám umožňují implementovat programování soketů. Program, který musí být napsán, aby přinesl funkce programování soketů, používá předdefinované soketové funkce. Tyto funkce se skládají z příkazů, které vykonávají skutečnou roli v programování soketů. Níže jsou uvedeny některé funkce soketu.
- Socket_accept: Toto je jedna z velmi běžných funkcí soketu, která se používá k přijetí připojení na soketu. Primární rolí této funkce je nechat připojení přijaté pokaždé, když dojde k požadavku.
- Socket_addrinfo_bind: Tato funkce se používá k přidání poskytovaných informací do soketu. Přijaté informace musí být přiřazeny do soketu, aby se usnadnila jeho implementace.
- Socket_clear_error: Tato funkce se používá k odstranění chyby, která je na soketu. Kromě toho tato funkce také vymaže chybu v posledním kódu.
- Socket_close: Jak název napovídá, tato funkce se používá k uzavření zdroje, který patří do soketu.
- Socket_connect: Tato metoda se používá k vytvoření soketového připojení. V programování soketu začíná program navázáním spojení, které lze provést pomocí této funkce.
- Socket_create: Tato metoda se týká vytvoření soketu. Soket vytvořený pomocí této metody funguje jako koncový bod připojení.
- Socket_create_listen: Tato funkce se používá k otevření soketu určeného portu, který přijímá připojení. Jak název napovídá, pomáhá při otevírání zásuvky pro poslech.
- Socket_create_pair: Tato metoda se obvykle používá v aplikaci, která potřebuje uvést do provozu komplexní část programování soketů. Pomáhá při vytváření nerozlišitelných soketů a ty jsou uloženy v poli.
- Socket_get_option: Tato metoda se používá k získání možností pro soket. Zásuvka se skládá z několika možností, které musí být použity v souladu s aplikací. Pomocí této metody můžeme získat všechny ty možnosti, které soket má.
- Socket_getsockname: Tato metoda se používá k dotazování na místní oblast vybraného soketu a na oplátku může získat podrobnosti týkající se cesty hostitele / portu nebo cesty k souborovému systému Unix. Ať už je výsledek jakýkoli, je zcela závislý na typu.
Příklad klienta soketu
V této části uvidíme kód, který bude použit k implementaci programování soketů na straně klienta. Níže uvedený příklad bude mít příspěvek a podrobnosti o hostiteli, které budou použity k vytvoření soketového připojení. Jakmile je spojení navázáno, vyměňuje si některé zprávy a očekává odpověď od serveru.
<_?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);
?>
Ve výše uvedeném příkladu je číslo portu 1230, ke kterému se program pokouší připojit. IP adresa hostitele bude IP localhost. Pokud je někdo ochoten komunikovat se vzdáleným serverem, může uvést IP adresu serveru. Poté bude zpráva odeslána na server, který se zobrazí na stránce s odpovědí. Poté bude zpracováno vytvoření soketu. V tomto programu existuje vhodný mechanismus pro řešení chyby pomocí metody die. Pokud se v takovém případě něco pokazí, metoda metodu die bude zrušena a objeví se zpráva v ní uvedená.
Příklad serveru Socket
Příklad podrobně popsaný v této části bude mít kódy PHP, které budou využívány k implementaci programování soketů na straně serveru. Detaily IP a čísla portu použité v posledním příkladu zůstanou stejné i v tomto příkladu. Hlavním rozdílem v tomto příkladu bude základní rozdíl, který jej odděluje od programovacího jazyka soketu na straně klienta. Umožňuje procesu porozumět kódu PHP pro programování soketů na straně serveru.
<_?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);
?>
Ve výše uvedeném příkladu byl program vyvinut pro práci v localhost. Zde uvedená adresa IP patří lokálnímu hostiteli a číslo portu může na tom spouštět službu TCP a UDP. Prvním krokem je vždy vytvoření soketu, protože se jedná o něco, co bude použito v celém programu. Později byl soket spojen se zadanými hodnotami, které pomohou při fungování. Metody použité v tomto programu mají předdefinovaný význam, který lze použít pro konkrétní účel. Jakmile všechno půjde dobře, program bude odpovídajícím způsobem fungovat a nakonec soketové připojení uzavře.
Závěr - Programování Socket v PHP
Programovací jazyk soketu se používá k tomu, aby aplikace fungovala na serveru a klientském modelu. Tento přístup k programování nám umožňuje navázat spojení mezi serverem a klientem, aby mohla být usnadněna výměna dat. Aby bylo programování soketů snadné a pohodlné, poskytlo PHP předdefinované metody, ve kterých mají všechny metody přiřazeny některé jedinečné úkoly.
Doporučené články
Toto je průvodce programováním Socket v PHP. Zde diskutujeme metody, které nám umožňují implementovat programování soketů a jak to umožňuje serveru a klientovi mezi nimi vyměňovat data. Další informace naleznete také v dalších souvisejících článcích -
- Úvod do enkapsulace v PHP
- Konstruktor v PHP | Typy konstruktorů
- Co je v PHP přepsáno?
- PHP Magic Constants
- Rekurzivní funkce PHP
- Příklady funkcí PHP String
- Průvodce programováním Socket v Javě