使用Arduino作为客户端的PHP UDP服务器

时间:2016-01-17 00:12:40

标签: php udp

我已经编程arduino按下按钮时将按钮发送到udp端口8888,当我使用第三方软件(如Socket测试)时工作正常,但我正在尝试使用下面的PHP代码来接收按摩。

代码(Not my Code)有效,但结果会在我们发生致命错误时显示,而不是在我发送按摩时按下(按下按钮)

下面是结果样本(所有结果一起显示,而不是按下按钮时):

Socket created Socket bind OK Waiting for data ... 10.10.1.48 : 8888 --YellowWaiting for data ... 10.10.1.48 : 8888 -- GreenWaiting for data ... 10.10.1.48 : 8888 -- YellowWaiting for data ... 10.10.1.48 : 8888 -- GreenWaiting for data ... 
Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\htdocs\Push\udp.php on line 38 

以下是代码:

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";

 if ( ! socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1)) 
{ 
    echo socket_strerror(socket_last_error($sock)); 
    exit; 
}
// Bind the source address
if( !socket_bind($sock, "0.0.0.0" , 8888) )
{
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

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

echo "Socket bind OK \n";

//Do some communication, this loop can handle multiple clients
while(1)
{
    echo "Waiting for data ... \n";

    //Receive some data
    $r = socket_recvfrom($sock, $buf, 512, 0, $remote_ip, $remote_port);
    echo "$remote_ip : $remote_port -- " . $buf;
    usleep(100000); // debuging purpose
    ob_flush();
    flush();
    //Send back the data to the client
    socket_sendto($sock, "OK " . $buf , 100 , 0 , $remote_ip , $remote_port);
}

socket_close($sock);

0 个答案:

没有答案