Web服务器Raspberry在几个命令后陷入困境

时间:2017-10-31 15:33:49

标签: php jquery raspberry-pi webserver

我正在使用树莓作为Web服务器(Apache2,php5和mysql)。一切顺利,但有一点:

我建造了一种用于控制陈列室的遥控器。每个按钮都向一个php页面发出一个POST请求,该页面上有一个套接字改变了陈列室中另一台PC中某些软件的内容。

唯一不起作用的是“监听”按钮。它工作1或2次,然后我需要重新启动覆盆子。 其他带有Windows的pc中的相同php页面没有问题。

然而,这是帖子:

            data ={};
            data =  {'watchout' : cmd};
                jQuery.ajax({
                    url:  ajaxurl,
                    type: "POST",
                    data: data,
                    timeout: 999
                }); 
            setTimeout(function(){
                data ={};
                data =  {'watchout' : run};
                jQuery.ajax({
                    url:  ajaxurl,
                    type: "POST",
                    data: data,
                    timeout: 1000,
                }); 
            },3000);

这里的“ajaxurl”是一个php文件,它使用此函数读取帖子并发送cmd和run命令以监听:

function udp($out_port,$out_ip,$out_message) {
    //echo "<div>UDP</div>";


/*
    Simple php udp socket client
*/

//Reduce errors
error_reporting(~E_WARNING);

$server = $out_ip;
$port = $out_port;

if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0)))
{
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Couldn't create socket: [$errorcode] $errormsg \n");
}

echo "Socket created \n";

//Communication loop
//while(1)
//{
    //Take some input to send
    //echo 'Enter a message to send : ';
    //$input = fgets(STDIN);
    $input = $out_message;

    echo 'send:"'.$input.'",to: '.$server.' at: '.$port;

    //Send the message to the server
    if( ! socket_sendto($sock, $input , strlen($input) , 0 , $server , $port))
    {
        $errorcode = socket_last_error();
        $errormsg = socket_strerror($errorcode);

        die("Could not send data: [$errorcode] $errormsg \n");
    }

    //Now receive reply from server and print it
    if(socket_recv ( $sock , $reply , 2045 , MSG_WAITALL ) === FALSE)
    {
        $errorcode = socket_last_error();
        $errormsg = socket_strerror($errorcode);

        die("Could not receive data: [$errorcode] $errormsg \n");
    }

    echo "Reply : $reply";
//}


    exit;
}

//---------------------
//END UDP
//--------------------

我重复一遍。 Windows中的这段代码效果很好!对我能做什么的任何想法?

谢谢!

0 个答案:

没有答案