PHP funzioni socket_

di il
24 risposte

PHP funzioni socket_

Ciao.
Devo scrivere in PHP un client e un server che devono comunicare attraverso un socket.
A quanto pare, a partire dalla prima funzione "socket_create()" ci sono dei problemi: lanciando il server da CLI (Windows 10) mi restituisce questo errore:
Fatal error: Uncaught Error: Call to undefined function socket_create() in C:\Users\EliteBook\Desktop\Pomella\www\MyPHP\socket\socket04\Server.php:6
Stack trace:
#0 {main}
thrown in C:\Users\EliteBook\Desktop\Pomella\www\MyPHP\socket\socket04\Server.php on line 6

Non sono mai riuscita a installare "xampp" come fanno tutti, quindi utilizzo UniserverZ.
Il "solito" file php.ini, in UniserverZ si chiama "phptest.ini", ma è del tutto equivalente.
Ho tolto il commento del punto e virgola davanti ai riferimenti sui socket

; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeou
default_socket_timeout = 60
(...)
extension=sockets

Ho spento e riacceso il server.
Ora ho...esaurito la fantasia (è da ieri sera che ci smanetto... E sono alla frutta!)
Mi trovo di fronte ad un classico errore che ho già visto affrontare in rete, ma mi sembra di aver seguito tutte le mosse suggerite.
L'unica cosa che non trovo nel mio file phptest.ini è la riga inerente alla libreria dll: in rete dicono che, su xampp, occorre togliere il commento a questa riga (come al solito si elimina il ; davanti alla riga)
extension=php_sockets.dll
Ma io questa riga non ce l'ho.

24 Risposte

  • Re: PHP funzioni socket_

    Ciao,
    quale errore ti dà xampp?

    Comunque se non ti và a buon fine l'installazione c'è la versione portable. È un pacchetto zip che estrai e sei operativa. Basta avviare l'exe

    Ciao
  • Re: PHP funzioni socket_

    Quì:

    Scaricati la versione per il tuo php.

    Ariciao...
  • Re: PHP funzioni socket_

    Quindi butto UniserverZ in soffitta...?
    Ok, ci provo... Domattina ti dico
    Se va bene... l'urlo di gioia che sentirai è il mio )

    PS xampp semplicemente... non funziona. Schiaccio il bottoncino di Apache, diventa anche verde ma...non succede nulla. Il server, di fatto, non va.
  • Re: PHP funzioni socket_

    Sembra finalmente funzionare xampp... (ma com'è possibile? Ho fatto le stesse cose che ho fatto le altre due milioni di volte nelle ginnastiche installa/disisntalla/installa_di_nuovo/disisntalla_ancora/.... Bo?)
    Ma non vanno le funzioni per i socket.
    Ecco la risposta da chrome
    Warning: socket_bind(): unable to bind address [10048]: Di norma è consentito un solo utilizzo di ogni indirizzo di socket (protocollo/indirizzo di rete/porta). in C:\xampp\htdocs\socket04\Server.php on line 7
    Could not bind to socket.

    Invece dal prompt dei comandi ho la solita risposta
    Fatal error: Uncaught Error: Call to undefined function socket_create() in C:\xampp\htdocs\socket04\Server.php:6
    Stack trace:
    #0 {main}
    thrown in C:\xampp\htdocs\socket04\Server.php on line 6


    Inoltre non ho trovato la riga famosa nel php.ini
    extension=php_sockets.dll
    Domattina ci riprovo...!
    Grazie, per ora
    Ma se vengono altre idee... Ben accette!
  • Re: PHP funzioni socket_

    Ciao, è possibile perché prima facevi un errore che non ti rendervi conto.
    Capita anche a me, a tutti, guardo il codice milioni di volte... E invece sbaglio a scrivere una variabile. Apparte questo...

    Questa estensioni extension=php_sockets.dll la devi scrivere nel file php.ini nella apposita sezione e devi scaricare il file dll e copiarlo nella apposita cartella, a memoria se non erro è xampp/php/ext qualcosa del genere. Se googoli trovi ciò che ti serve.

    Ciao
  • Re: PHP funzioni socket_

    pomella ha scritto:


    Quindi butto UniserverZ in soffitta...?
    Ok, ci provo... Domattina ti dico
    Se va bene... l'urlo di gioia che sentirai è il mio )

    PS xampp semplicemente... non funziona. Schiaccio il bottoncino di Apache, diventa anche verde ma...non succede nulla. Il server, di fatto, non va.
    Alle 3 di notte di solito dormo! Ma ci sta...

    Xampp per far girare i siti o le App web devi creare una cartella all'interno della cartella htdocs e creare i file php. Richiami l'applicativo tramite url http://localhost/tuacartell.

    Che utilizzi per sviluppare in php?
  • Re: PHP funzioni socket_

    Nella cartella ext di php controlla se c'è il file che ti interessa se c'è basta decommentare in php.ini estensione associata alla dll. Altrimenti ti devi scaricare la dll e aggiungere la voce nel php.ini

    Ariciao....
  • Re: PHP funzioni socket_

    Una volta fatta la modifica ricordati di riavviare il servizio di xampp.

    Scusa ma oggi vado a rate...

    Ciao ancora...
  • Re: PHP funzioni socket_

    Ciao e grazie, innanzitutto!
    La dll c'è eccome... Sigh. Manca la riga da dis-commentare. Ari-sigh
    Il file dll è al suo posto \xampp\php\ext\php_sockets.dll
    XAMPP non ha lo "strano" e "inconsueto" phptest.ini (come UniserverZ) ma ha il suo bravo file php.ini (sono uguali... ma cambia il nome)
    Anche lui è al suo posto \xampp\php\php.ini
    Peccato che la riga cui devo togliere il ";" di commento non ci sia
    Con un search ho cercato la fatidica riga con scritto "extension=php_sockets.dll" ma non l'ho trovata. Ho persino... provato ad aggiungerla.
    Ecco quello che, "similmente" ho trovato:
    extension_dir="C:\xampp\php\ext"
    extension=/path/to/extension/mysqli.so
    Poi ci sono una serie di extension che però non comprendono librerie. Tipo:
    extension=bz2
    extension=curl

    eccetera... Poi si arriva alla riga che ho S-commentato, sperando fosse sufficiente
    extension=sockets
    Poi le uniche librerie dll sono menzionate qui
    extension=php_openssl.dll
    extension=php_ftp.dll

    Qui di seguito ho provato ad aggiungere la riga "extension=php_sockets.dll", ovviamente senza successo.
    Come vedi è tutto, rigorosamente S-commentato!

    PS anche a me piacerebbe dormire alle tre di notte... se non fosse che quando provo a spegnere gli occhi il mio cervello non ne vuole sapere... col tarlo che ronza dentro...!
  • Re: PHP funzioni socket_

    ...tra l'altro, non sono riuscita a capire come disinstallare Uniserver. E non è bello avere due server installati col rischio che confliggano...!
    Dubito sia questo il problema perchè mi dava esattamente lo stesso errore, anche quando avevo installato solo Uniserver, prima di aver provato col tuo magico link che mi ha permesso l'utilizzo di XAMPP. Anzi, ora con una banalissima session, vanno entrambi, sia Uniserver sia XAMPP.
    In ogni modo, non sono riuscita a disistallare Uniserver. (spesso quando cerco di risolvere un problema... se ne apre sempre un altro! ahahah! è sempre così! Poi ci si chiede perchè alle tre di notte... io mi accanisco sui tasti del pc )
  • Re: PHP funzioni socket_

    Nella sezione extension scrivi tu ciò che manca. Salvi e riavvii apache.

    Le notti a programmare o tirare su una struttura capita a tutti sopratutto agli inizi. Con l'esperienza capita meno....

    Per disinstallare per prima cosa arresta tutti i servizi di xampp e uniserver poi disitalli quest'ultimo.

    Ciao
  • Re: PHP funzioni socket_

    Xampp ha solo php.ini. Controlla se ciò che hai aggiunto c'è e riavvia apache.

    Ciao
  • Re: PHP funzioni socket_

    Già fatto tutte ste mosse... purtroppo
    Spiego:
    1) extension l'ho scritta e non è successo nulla. Sia su UniserverZ in phptest.ini sia su XAMPP (php.ini). Reazione: niuna; sistema tale e quale a prima. Ho provato anche a "spostarla" su e giù per il file ini... anche se in teoria non dovrebbe cambiare un tubo, credo. Comunque... niente di fatto.
    2) non vedo alcun programma di disistallazione di Uniserver. Avevo un mac in passato, comodo proprio in questi frangenti: lì si cancella e saluti a tutti. Solo alcuni, pochi, pochissimi programmi hanno il set di disintallazione. Ma con windows... mica me la sento! Ho cercato in rete come disinstallare, ma non ho trovato un accidenti.
  • Re: PHP funzioni socket_

    pomella ha scritto:


    (...) Dicevo, infatti che:
    Poi le uniche librerie dll sono menzionate qui
    extension=php_openssl.dll
    extension=php_ftp.dll

    Qui di seguito ho provato ad aggiungere la riga "extension=php_sockets.dll", ovviamente senza successo.
    Come vedi è tutto, rigorosamente S-commentato!
Devi accedere o registrarti per scrivere nel forum
24 risposte