Programmazione Socket in PHP

I socket vengono utilizzati per la comunicazione tra processi. La comunicazione tra processi è generalmente basata sul modello client-server. In questo caso, client-server sono le applicazioni che interagiscono tra loro. Il questo articolo impareremo ad utilizzare i socket di PHP

Programmazione Socket  in PHP
Programmazione Socket  in PHP

Introduzione

I socket vengono utilizzati per la comunicazione tra processi. La comunicazione tra processi è generalmente basata sul modello client-server. In questo caso, client-server sono le applicazioni che interagiscono tra loro. L'interazione tra client e server richiede una connessione. La programmazione socket è responsabile di stabilire quella connessione tra le applicazioni per interagire.

php socket schema

Uso del codice

viluppare un client per inviare un messaggio di stringa al server e il server per restituire il contrario dello stesso messaggio al client.

SERVER PHP
Passaggio 1: imposta variabili come 'host' e 'port'

$host = "127.0.0.1";
$port = 5353;
// No Timeout 
set_time_limit(0);

Passaggio 2: crea socket

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");

Passaggio 3: associare il socket alla porta e all'host
Qui la risorsa socket creata è legata all'indirizzo IP e al numero di porta.

$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");

Passaggio 4: inizia ad ascoltare la porta
Dopo essere stato associato a IP e port, il server attende che il client si connetta. Fino ad allora continua ad aspettare.

$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");

Passaggio 5: accetta la connessione in entrata
Questa funzione accetta la richiesta di connessione in entrata sul socket creato. Dopo aver accettato la connessione dal socket client, questa funzione restituisce un'altra risorsa socket che è effettivamente responsabile della comunicazione con il socket client corrispondente. Qui '$ spawn' è quella risorsa socket responsabile della comunicazione con il socket client.

$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");

Passaggio 6: leggere il messaggio dal socket client

$input = socket_read($spawn, 1024) or die("Could not read input\n");

Passaggio 7: invertire il messaggio

$output = strrev($input) . "\n";

Passaggio 8: inviare un messaggio al socket del client

socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");

Chiudere il socket

socket_close($spawn);
socket_close($socket);

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow