以Arduino为客户端的PHP UDP服务器

以Arduino为客户端的PHP UDP服务器,php,udp,Php,Udp,我已经编写了arduino程序,在按下按钮时将消息发送到udp端口8888,并且在使用第三方软件(如Socket test)时工作正常,但我尝试使用下面的php代码来接收消息 code()可以工作,但当我们遇到致命错误时,结果会显示出来,而不是当我发送消息时(按按钮) 以下是结果示例(所有结果一起显示,而不是在我按下按钮时显示): 代码如下: if(!($sock = socket_create(AF_INET, SOCK_DGRAM, 0))) { $errorcode = socke

我已经编写了arduino程序,在按下按钮时将消息发送到udp端口8888,并且在使用第三方软件(如Socket test)时工作正常,但我尝试使用下面的php代码来接收消息

code()可以工作,但当我们遇到致命错误时,结果会显示出来,而不是当我发送消息时(按按钮)

以下是结果示例(所有结果一起显示,而不是在我按下按钮时显示):

代码如下:

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