Visualizzazione risultati 1 fino 6 di 6

Discussione: [Socket]Multiconnessione

  1. #1
    Guest

    Predefinito [Socket]Multiconnessione

    Codice PHP:
    include"connect.inc.php";


    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    $result = mysql_query($query, $connection);
    $query2 = "SELECT * FROM db_host";
    $result2 = mysql_query($query2, $connection);
    while(
    $row2 = mysql_fetch_array($result2))
    {
    $address=explode(":","$row2[address]");

    $result = socket_connect($socket, $address[0], $address[1]);

    echo
    "$result";

    }
    Lo script estrae gli host e le porte e si collega ad essi restituendo 0 o 1 grazie alla variabile $result che è associata alla connessione socket.
    Ma questo non accade.

    Sono in locale i socket sono attivi,ma sembra che non sia possibile collegarsi con più di un host.
    Sapete aiutarmi?.

    Grazie.
    Ultima modifica di svacant : 02-02-2007 alle ore 19.20.39

  2. #2
    Guest

    Predefinito

    non dovresti usare la stessa socket per più connessioni, prova a crere una oscket per ogni connessione e vedrai che funziona...

  3. #3
    Guest

    Predefinito

    $id="$row2[id]";

    $address = explode(":","$row2[hubaddress]");
    $socket.$id = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect("$socket.$id", $address[0], $address[1]);

    Questa è la riga dentro il while.
    Ma mi dà errore.

  4. #4
    Guest

    Predefinito

    bhè...c'erano un po' di errori:
    $id=$row2['id'];

    $address = explode(":", $row2['hubaddress']);
    $socket[$id] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect($socket[$id], $address[0], $address[1]);

    prova ora

  5. #5
    Guest

    Predefinito

    Grazie SoulHome...

    E ancora una volta la community di av resta imbattuta.
    Complimenti..^^

    Un'ultima cosa veloce...
    Come faccio ad evitare il messaggio di warning che viene fuori quando $result è zero?

    Edit c'è l'ho fatta:
    Per gli user che nè avranno di bisogno.

    ERROR_REPORTING(0); //Disattiva i messaggi di warning
    Ultima modifica di svacant : 02-02-2007 alle ore 23.24.33

  6. #6
    Guest

    Predefinito

    Il warning viene fuori probabilemnte a causa di un errore di connessione nella funzione socket_connect(), ti consiglio di togliere error_reporting(0); e di sostituire
    $result = socket_connect($socket[$id], $address[0], $address[1])
    con
    $result = @socket_connect($socket[$id], $address[0], $address[1])
    così nasconderai solo gli errori della funzione in questione e non quelli di tutto il file ed eventuali inclusioni.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •