Я использую малину в качестве веб-сервера (Apache2, php5 и mysql). Все работает плавно, но одно:
Я построил своего рода пульт для управления демонстрационным залом. Каждая кнопка отправляет POST-запрос на страницу php, чтобы с помощью сокета что-то изменить в каком-либо программном обеспечении на другом компьютере в демонстрационном зале.
Единственное, что не работает, это кнопка «бдительность». Это работает 1 или 2 раза, а затем мне нужно перезагрузить малину.
Та же самая страница php в других ПК с Windows работает без проблем.
Однако вот этот пост:
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 работает хорошо! Есть идеи о том, что я могу сделать?
Спасибо!
Задача ещё не решена.
Других решений пока нет …