Non capisco se i socket vengono effettivamente inviati, volevo capirne il funzionamento e dopo aver letto qualche guida ho voluto vedere un esempio, ma se l'esempio non funziona non posso capirne ulteriornmente il funzionamento.
Questo esempio era su un sito in italiano (uno dei pochi esempi online sui sockets comprensibili, almeno per me):
I titoli delle pagine sono scritti dopo l'aperura del php e vanno scritti in minuscolo.
Il mio problema è semplicemente che la pagina non fà niente...
Per favore potreste provare ad usarli, ovviamente cambiate la porta per il socket.
Fatemi sapere!!:fonzie:
Questo esempio era su un sito in italiano (uno dei pochi esempi online sui sockets comprensibili, almeno per me):
PHP:
<?php
//SERVER.PHP
$sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //crea un socket
if(!socket_bind($sock, "127.0.0.1", 443)) //crea un socket sulla porta 1999 localmente
return; //se non è stato possibile eseguire il binding della riga precedente, termina
socket_listen($sock, 2); //altrimenti, si mette in attesa
while(1) //ciclo infinito: 1 è sempre vero
{
print ("Connected, now reading...\n"); //scrive “connecte, now ready” e va a capo
$canale = socket_accept($sock); //accetta la connessione sul socket aperto
$x = socket_read($canale, 1024, PHP_NORMAL_READ); //legge i dati fino al carattere “\n”
$dim=strlen($x); //scrive dentro la var dim la lunghezza della stringa passata
$validCommand=substr($x, 0, $dim-1); //estrae il comando eliminando i caratteri “\n”
echo "ho ricevuto la stringa: ".$validCommand."\n"; //da conferma a video della stringa ricevuta
switch ($validCommand) //analizza la stringa ricevuta
{
case "ciao": //se la stringa vale “ciao”
echo "ciao a te!\n"; //scrive “ciao a te!” e va a capo
break;
case "come stai": //se la stringa vale “come stai”
echo "bene grazie\n"; //scrive “bene grazie” e va a capo
break;
case "exit": // se la stringa vale “exit”
return; //termina l'applicazione
break;
default: //per tutti gli altri valori della stringa non contemplati nelle righe precedenti
echo "comando sconosciuto!...\n"; //scrive “comando sconosciuto!...” e va a capo
break;
}
}
?>
PHP:
<?php
//CLIENT.PHP
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //crea un socket
socket_connect($sock, "127.0.0.1", 443); //si connette in locale sulla porta 1999
$stringa="ciao"; // setta una variabile stringa contenente “ciao”
echo "invio la stringa ".$stringa."\n"; //scrive che invierà la stringa
socket_write($sock, "$stringa\n"); // invia i dati all'altro programma tramite socket aggiungendo un accapo
?>
I titoli delle pagine sono scritti dopo l'aperura del php e vanno scritti in minuscolo.
Il mio problema è semplicemente che la pagina non fà niente...
Per favore potreste provare ad usarli, ovviamente cambiate la porta per il socket.
Fatemi sapere!!:fonzie: