39 lines
885 B
PHP
39 lines
885 B
PHP
<?php
|
|
|
|
function sendUDP($data, $length, $sockhandler = null) {
|
|
global $sock;
|
|
if ($sockhandler == null) {
|
|
$sockhandler = $sock;
|
|
}
|
|
return socket_sendto($sockhandler, $data, $length, 0, "127.0.0.1", get_cfg_var('UDP_PORT'));
|
|
}
|
|
|
|
function recvUDP($sockhandler = null) {
|
|
global $sock;
|
|
if ($sockhandler == null) {
|
|
$sockhandler = $sock;
|
|
}
|
|
socket_recvfrom($sockhandler, $buf, 100, 0, $from, $port);
|
|
return array($buf, $from, $port);
|
|
}
|
|
|
|
function recvUDPWithTimeout($timeout, $sockhandler = null) {
|
|
global $sock;
|
|
if ($sockhandler == null) {
|
|
$sockhandler = $sock;
|
|
}
|
|
$endtime = microtime(true) + ($timeout/1000);
|
|
$buf = "";
|
|
$from = "";
|
|
$port = 0;
|
|
while(microtime(true) < $endtime) {
|
|
socket_recvfrom($sockhandler, $buf, 100, MSG_DONTWAIT, $from, $port);
|
|
// Stop when we have data
|
|
if (strlen($buf) > 0) {
|
|
break;
|
|
}
|
|
sleep(1);
|
|
}
|
|
return array($buf, $from, $port);
|
|
}
|