Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [PHP] uso delle socket

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577

    [PHP] uso delle socket

    sto usando questo semplice codice

    codice:
    <?php 
    
    $address = "127.0.0.1";
    $port = "5000";
    
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect($socket, $address, $port);
    
    
    $buffer=socket_read($socket , 512);
    echo '[*]'.$buffer;
    
    socket_close($socket);
    
    
    ?>
    per leggere dati dalla porta 5000. Il mio problema è che non c'è continuità di visualizzazione se metto un

    while(1)
    {
    $buffer=socket_read($socket , 512);
    echo '[*]'.$buffer;
    }

    in quanto il browser non visualizza più nulla, e permane in una sorta di tentativo di connessione infinita, per intenderci, come quando un browser rimane in attesa di un messaggio senza mostrare nulla: c'è un rimedio?

    grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se in un file php metti un while(1), questo non terminerà mai l'esecuzione, dunque non darà mai la pagina indietro al browser.

    Non puoi mettere un while(1) in un file php che deve generare una pagina html.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    ma devo visualizzare continuamente dati in arrivo

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    AJAX

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    devo cambiare linguaggio?

    ma sarà pur sempre un mix di php+dhtml?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    AJAX è praticamente Javascript.
    Lo metti nella pagina in cui vuoi visualizzare i dati e ti permette di richiamare in maniera asincrona (senza ricaricare la pagina) degli script php.

    Quello che devi fare non è semplicissimo, magari attendi qualcuno che c'è già passato e che sappia indirizzarti subito sulla soluzione giusta avendo già lui affrontato le problematiche che si presentano.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    già col browser se mi connetto alla porta 5000 mi arrivano dati

    http:\\localhost:5000

    forse potrei evitare anche php, ma dovrei catturare l'input sulla porta 5000 prima della sua visualizzazione

  8. #8
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    è probabilmente una questione di buffering... finché lo script non termina l'output non viene inviato al browser... dovresti disabilitare il buffering ed eventualmente fare un flush ogni volta che hai dei dati da inviare.
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    l'invio dei dati è in tempo reale

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    ho implementato questa idea ma non mi sembra il massimo della vita

    codice:
    <div id="message" class="updated">pippo</div>
    
    <script>
    function prova(pippo){
    	document.getElementById("message").innerHTML = pippo;
    	window.setTimeout("window.location.reload()",400);
    }
    </script>
    
    <?php 
    $address = "127.0.0.1";
    $port = "5000";
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect($socket, $address, $port);
    
    $buffer=socket_read($socket , 1024);
    echo "<body onload=\"prova('$buffer')\";</body>
    ";
    
    socket_close($socket);
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.