Socket-Programmierung in PHP

王林
Freigeben: 2024-08-29 13:14:07
Original
1253 Leute haben es durchsucht

Alle Programmiersprachen bieten den Mechanismus zur Implementierung der Server- und Client-Kommunikation. Gemäß diesem Mechanismus ermöglicht die Anwendung dem Server und dem Client, Daten zwischen ihnen auszutauschen. Ähnlich wie die anderen Programmiersprachen stellt uns auch PHP diesen Mechanismus zur Verfügung. Socket-Programmierung kann als Programmieransatz definiert werden, bei dem der Server und der Client als Anwendung dienen und eine Verbindung zwischen beiden hergestellt werden muss, um die Kommunikation zwischen ihnen zu erleichtern. In Bezug auf PHP können wir damit auch das Konzept der Socket-Programmierung umsetzen. In diesem Artikel erfahren Sie, wie Sie diese Socket-Programmierung mithilfe der Programmiersprache PHP implementieren.

WERBUNG Beliebter Kurs in dieser Kategorie PROGRAMMIERSPRACHEN - Spezialisierung | 54 Kursreihe | 4 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Socket-Klassenmethoden

Die Socket-Klassenmethoden sind die speziellen Funktionen, mit denen wir die Socket-Programmierung implementieren können. Das Programm, das geschrieben werden muss, um die Funktionalitäten der Socket-Programmierung bereitzustellen, verwendet die vordefinierten Socket-Funktionen. Diese Funktionen bestehen aus den Anweisungen, die die eigentliche Rolle bei der Socket-Programmierung übernehmen. Nachfolgend sind einige der Socket-Funktionen aufgeführt.

  • Socket_accept: Dies ist eine der häufigsten Socket-Funktionen, die zum Akzeptieren einer Socket-Verbindung verwendet werden. Die Hauptaufgabe dieser Funktion besteht darin, die Verbindung immer dann zuzulassen, wenn eine Anfrage eintrifft.
  • Socket_addrinfo_bind: Diese Funktion wird verwendet, um die bereitgestellten Informationen zum Socket hinzuzufügen. Die akzeptierten Informationen müssen dem Socket zugewiesen werden, um dessen Implementierung zu erleichtern.
  • Socket_clear_error: Diese Funktion wird verwendet, um den Fehler zu löschen, der am Socket vorliegt. Darüber hinaus löscht diese Funktion auch den Fehler im letzten Code.
  • Socket_close: Wie der Name schon sagt, wird diese Funktion verwendet, um die Ressource zu schließen, die zum Socket gehört.
  • Socket_connect: Mit dieser Methode wird eine Socket-Verbindung erstellt. Bei der Socket-Programmierung beginnt das Programm mit dem Verbindungsaufbau, was mit dieser Funktion erfolgen kann.
  • Socket_create: Diese Methode befasst sich mit der Erstellung des Sockets. Der mit dieser Methode erstellte Socket fungiert als Endpunkt der Verbindung.
  • Socket_create_listen: Diese Funktion wird verwendet, um den Socket dazu zu bringen, den angegebenen Port zu öffnen, der die Verbindung akzeptiert. Wie der Name schon sagt, hilft es dabei, die Steckdose zum Zuhören zu öffnen.
  • Socket_create_pair: Diese Methode wird normalerweise in der Anwendung verwendet, die den komplexen Teil der Socket-Programmierung zum Einsatz bringen muss. Es hilft bei der Erstellung der nicht unterscheidbaren Sockets, die im Array gespeichert werden.
  • Socket_get_option: Diese Methode wird verwendet, um die Optionen für den Socket abzurufen. Ein Sockel besteht aus mehreren Optionen, die je nach Anwendung eingesetzt werden müssen. Mit dieser Methode können wir alle Optionen erhalten, die ein Socket hat.
  • Socket_getsockname: Diese Methode wird verwendet, um die lokale Region des ausgewählten Sockets abzufragen und im Gegenzug möglicherweise die Details zum Host/Port oder zum Unix-Dateisystempfad abzurufen. Welches Ergebnis auch immer erzielt wird, hängt völlig von der Art ab.

Socket-Client-Beispiel

In diesem Abschnitt sehen Sie den Code, der zur Implementierung der clientseitigen Socket-Programmierung verwendet wird. Das unten erwähnte Beispiel enthält die Post- und Hostdetails, die zum Erstellen der Socket-Verbindung verwendet werden. Sobald die Verbindung hergestellt ist, tauscht sie einige Nachrichten aus und erwartet eine Antwort vom Server.

<?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);
?>
Nach dem Login kopieren

Im obigen Beispiel ist die Portnummer 1230, mit der das Programm versucht, eine Verbindung herzustellen. Die IP-Adresse des Hosts ist die IP des lokalen Hosts. Wenn jemand bereit ist, mit dem Remote-Server zu interagieren, kann er die IP-Adresse des Servers angeben. Anschließend wird die Nachricht an den Server gesendet, der auf der Antwortseite angezeigt wird. Die Socket-Erstellung wird anschließend verarbeitet. In diesem Programm gibt es einen geeigneten Mechanismus zur Fehlerbehandlung mithilfe der Die-Methode. Wenn etwas schief gelaufen ist, wird in diesem Fall die Methode widerrufen und die darin angegebene Meldung wird angezeigt.

Socket Server Example

The example detailed in this section will be having the PHP codes that will be leveraged to implement the socket programming at the server-side. The details of the IP and the port number used in the last example will remain the same in this example as well. This example’s main difference will make the core difference that separates it from the client-side socket programming language. Lets process to understand the PHP code for server-side socket programming.

<?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);
?>
Nach dem Login kopieren

In the above example, the program has been developed to work in the localhost. The IP address mentioned here belongs to the localhost, and the port number can run the TCP and UDP service on that. The initial step is always the creation of the socket, as it is something that will be used throughout the program. Later the socket has been bonded with the specified values, which will help in functioning. The methods used in this program have a predefined meaning that can be used for a specific purpose. Once everything goes well, the program will work accordingly and will close the socket connection eventually.

Conclusion – Socket Programming in PHP

The socket programming language is used to let the application work on the server and the client model. This approach of programming lets us establish the connection between the server and the client so that the exchange of the data could be facilitated. To make the socket programming easy and convenient, PHP has provided predefined methods where all the methods have some unique tasks assigned to them.

Das obige ist der detaillierte Inhalt vonSocket-Programmierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage