Socket programmeren in PHP - Verschillende klassenmethode met voorbeelden

Inhoudsopgave:

Anonim

Inleiding tot socketprogrammering in PHP

Alle programmeertalen bieden het mechanisme om de server- en clientcommunicatie te implementeren. Volgens dit mechanisme stelt de applicatie de server en de client in staat om gegevens tussen hen uit te wisselen. Vergelijkbaar met de andere programmeertalen, biedt PHP ons ook dit mechanisme. Socket-programmering kan worden gedefinieerd als de benadering van programmeren waarbij de server en de client de toepassing zijn waarbij een verbinding tussen beide moet worden gemaakt om de communicatie tussen hen te vergemakkelijken. Wat PHP betreft, kunnen we hiermee ook het concept van socketprogrammering implementeren. In dit artikel zullen we leren hoe we deze socket-programmering kunnen implementeren met behulp van de PHP-programmeertaal.

Socket Class-methoden

De methoden van de socketklasse zijn de speciale functies waarmee we de socketprogrammering kunnen implementeren. Het programma dat moet worden geschreven om de functionaliteiten van socketprogrammering te brengen, gebruikt de vooraf gedefinieerde socketfuncties. Deze functies bestaan ​​uit de instructies die de daadwerkelijke rol vervullen in socketprogrammering. Hieronder vindt u enkele socketfuncties.

  • Socket_accept: dit is een van de meest voorkomende socketfuncties die wordt gebruikt om een ​​verbinding op een socket te accepteren. De primaire rol van deze functie is om de verbinding te laten accepteren wanneer een verzoek toeslaat.
  • Socket_addrinfo_bind: Deze functie wordt gebruikt om de verstrekte informatie aan de socket toe te voegen. De geaccepteerde informatie moet aan de socket worden toegewezen om de implementatie ervan te vergemakkelijken.
  • Socket_clear_error: deze functie wordt gebruikt om de fout in de socket te wissen. Bovendien wist deze functie ook de fout in de laatste code.
  • Socket_close: Zoals de naam al aangeeft, wordt deze functie gebruikt om de bron te sluiten die bij de socket hoort.
  • Socket_connect: deze methode wordt gebruikt om een ​​socketverbinding tot stand te brengen. In de socketprogrammering begint het programma met het tot stand brengen van de verbinding die met deze functie kan worden uitgevoerd.
  • Socket_create: deze methode houdt zich bezig met het maken van de socket. De socket die met deze methode is gemaakt, werkt als het eindpunt van de verbinding.
  • Socket_create_listen: Deze functie wordt gebruikt om de socket de opgegeven poort te openen die de verbinding accepteert. Zoals de naam al zegt, helpt het bij het openen van de aansluiting om te luisteren.
  • Socket_create_pair: deze methode wordt meestal gebruikt in de toepassing die het complexe deel van socketprogrammering moet gebruiken. Het helpt bij het maken van de niet te onderscheiden sockets en die worden opgeslagen in de array.
  • Socket_get_option: deze methode wordt gebruikt om de opties voor de socket te verkrijgen. Een socket bestaat uit verschillende opties die moeten worden gebruikt in overeenstemming met de toepassing. Door deze methode te gebruiken, kunnen we al die opties krijgen die een socket heeft.
  • Socket_getsockname: deze methode wordt gebruikt om de lokale regio van de geselecteerde socket op te vragen en kan in ruil daarvoor de details krijgen met betrekking tot de host / poort of het pad van het Unix-bestandssysteem. Welke uitkomst het ook is, is volledig afhankelijk van het type.

Socket Client Voorbeeld

In deze sectie zullen we de code zien die zal worden gebruikt om de socket-programmering aan de clientzijde te implementeren. Het onderstaande voorbeeld bevat de post en de hostgegevens die worden gebruikt om de socketverbinding tot stand te brengen. Zodra de verbinding tot stand is gebracht, worden enkele berichten uitgewisseld en wordt een antwoord van de server verwacht.

<_?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);
?>

In het bovenstaande voorbeeld is het poortnummer 1230 waarmee het programma verbinding probeert te maken. Het IP-adres van de host is het IP van de localhost. Als iemand bereid is om met de externe server te communiceren, kunnen ze het IP-adres van de server vermelden. Vervolgens wordt het bericht verzonden naar de server die wordt weergegeven op de reactiepagina. De socketcreatie wordt naderhand verwerkt. In dit programma is er een geschikt mechanisme om de fout af te handelen met behulp van de die-methode. Als er iets mis is gegaan in dat geval, wordt de dobbelsteenmethode ingetrokken en verschijnt de daarin gegeven boodschap.

Socketserver Voorbeeld

Het voorbeeld dat in dit gedeelte wordt beschreven, bevat de PHP-codes die worden gebruikt om de socketprogrammering aan de serverzijde te implementeren. De details van het IP-adres en het poortnummer dat in het laatste voorbeeld is gebruikt, blijven ook in dit voorbeeld hetzelfde. Het belangrijkste verschil in dit voorbeeld is het kernverschil dat het scheidt van de programmeertaal van de client-socket. Laat proces om de PHP-code voor server-side socket programmeren te begrijpen.

<_?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);
?>

In het bovenstaande voorbeeld is het programma ontwikkeld om te werken in de localhost. Het hier vermelde IP-adres is van de localhost en het poortnummer kan daarop de TCP- en UDP-service uitvoeren. De eerste stap is altijd het maken van de socket, omdat deze in het hele programma wordt gebruikt. Later is de socket verbonden met de opgegeven waarden die helpen bij het functioneren. De methoden die in dit programma worden gebruikt, hebben de vooraf gedefinieerde betekenis die voor een specifiek doel kan worden gebruikt. Zodra alles goed gaat, zal het programma dienovereenkomstig werken en zal de socketverbinding uiteindelijk worden gesloten.

Conclusie - Socket Programming in PHP

De socket-programmeertaal wordt gebruikt om de toepassing op de server en het clientmodel te laten werken. Met deze benadering van programmeren kunnen we de verbinding tussen de server en de client tot stand brengen, zodat de uitwisseling van gegevens kan worden vergemakkelijkt. Om de socketprogrammering gemakkelijk en handig te maken, heeft PHP de vooraf gedefinieerde methoden verstrekt waaraan alle methoden een aantal unieke taken hebben toegewezen.

Aanbevolen artikelen

Dit is een handleiding voor het programmeren van sockets in PHP. Hier bespreken we de methoden waarmee we socket-programmering kunnen implementeren en hoe het de server en de client in staat stelt om onderling gegevens uit te wisselen. U kunt ook onze andere gerelateerde artikelen bekijken voor meer informatie -

  1. Inleiding tot inkapseling in PHP
  2. Constructor in PHP | Soorten constructor
  3. Wat is opheffen in PHP?
  4. PHP Magic Constants
  5. PHP recursieve functie
  6. Voorbeelden van PHP String Functions
  7. Handleiding voor socketprogrammering in Java