Loading:


    socket_read

    string socket_read ( resource $socket , int $length [, int $type=PHP_BINARY_READ ] )

    Czyta maksymalną długość w bajtach z gniazda

    Parametry

     

    socket -  gniazda ważnych zasobów utworzone za pomocą socket_create().


    length - maksymalna liczba opczytanych bajtów


    type - opcjonalny parametr jest stałą o nazwie:

     

    • PHP_BINARY_READ (domyślnie) - użycie funkcji recv(). Bezpieczne dla danych binarnych.
    • PHP_NORMAL_READ - zatrzymuje odczyt na  \n lub \r.


     

     

     

    Zwracane wartości

    socket_read() zwraca dane jako ciąlubg,  FALSE

     

     



    Napisz Artyku³

    Listing


    <?php
    error_reporting(E_ALL);

    /* pozostawia skrypt w oczekiwaniu na połączenie. */
    set_time_limit(0);

    ob_implicit_flush();

    $address = '127.0.0.1';
    $port = 100;

    if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
        echo "socket_create()  Nieudane: powód: " . socket_strerror(socket_last_error()) . "\n";
    }

    if (socket_bind($sock, $address, $port) === false) {
        echo "socket_bind() Nieudane: powód: " . socket_strerror(socket_last_error($sock)) . "\n";
    }
    else
      echo 'Socket ' . $address . ':' . $port . " został otwarty\n";

    if (socket_listen($sock, 5) === false) {
        echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
    }
    else
       echo "Listening dla nowych klientów..\n";

       $client_id = 0;
    do {
        if (($msgsock = socket_accept($sock)) === false) {
            echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
            break;
        }
        else {
            $client_id += 1;
          echo "Client #" .$client_id .": Connect\n";
        }
         
        /* Send instructions. */
        $msg = "\nWelcome to the PHP Test Server. \n" .
            "Aby zakończyć, wpisz 'quit'. Aby zamknąć serwer typu 'shutdown'.\n";
        socket_write($msgsock, $msg, strlen($msg));
    $cur_buf = '';
        do {
            if (false === ($buf = socket_read($msgsock, 2048))) {
                echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
                break 2;
            }
            if ($buf == "\r\n") {
            if ($cur_buf == 'quit') {
                echo 'Klient #' .$client_id .': Odłączony' . "\n";
                break;
            }
            if ($cur_buf == 'shutdown') {
                socket_close($msgsock);
                break 2;
            }
            //else {
           $talkback = "Nieznana komenda: " . str_replace("\r\n", '\r\n', $cur_buf) ."\n";
           socket_write($msgsock, $talkback, strlen($talkback));
           // }
            echo 'Klient #' .$client_id .': ' . $cur_buf . "\n";
            $cur_buf = '';
            }
            else $cur_buf .= $buf;
        } while (true);
        socket_close($msgsock);
    } while (true);

    socket_close($sock);
    ?>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors