Привет все.
На юниксе это работает:
use Socket;
use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
...
socket(S,PF_INET,SOCK_DGRAM,getprotobyname("udp")) || die "socket: $!";
$portaddr=sockaddr_in($port,inet_aton($zielIP));
$flags=fcntl(S,F_GETFL,0);
fcntl(S,F_SETFL,$flags | O_NONBLOCK);
for ($i=0;$i<=$timeOut;$i++)
{ $answer=recv(S,$msg,350,0);
last if (length($msg) || $answer);
sleep 1;
}
Пытаюсь выполнить под Windows - выдаёт ошибку:
Your vendor has not defined Fcntl macro F_GETFL, used at script.pl line 28.
Чему же этот F_GETFL в виндах равен?
И как вообще неблокирующий сокет под Виндами на Перле открыть?
Большое спасибо.