我在守护进程的 perl 中创建了一个这样的套接字
IO::Socket::INET->new(LocalPort => $port,
Proto => 'udp',Blocking => '0') or die "socket: $@";
在 Linux 机器上
在 recv 调用期间,套接字的行为与预期的非阻塞套接字一样
$sock->recv($message, 128);
。
但是,我一直观察到,当 eth0 上的 VIF 在守护程序运行并接收数据时重新配置时,recv 调用开始阻塞。
这是一个非常令人困惑的问题。我做到$sock->recv($message, 128, MSG_DONTWAIT);
了,recv 调用变得非阻塞。
我用谷歌搜索但看不到使用 UDP 非阻塞套接字的建议方法是什么。