以Arduino为客户端的PHP UDP服务器
我已经编写了arduino程序,在按下按钮时将消息发送到udp端口8888,并且在使用第三方软件(如Socket test)时工作正常,但我尝试使用下面的php代码来接收消息 code()可以工作,但当我们遇到致命错误时,结果会显示出来,而不是当我发送消息时(按按钮) 以下是结果示例(所有结果一起显示,而不是在我按下按钮时显示): 代码如下:以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
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);