Как мне установить `SO_RCVTIMEO` для сокета в Perl?
Если я попытаюсь так:
my $sock = IO::Socket::INET->new( … ) or die "no socket for you";
defined $sock->setsockopt(SOL_SOCKET, SO_RCVTIMEO, 30) or die "setsockopt: $!";
тогда мой скрипт подвергается смерти от "setsockopt: Неверный аргумент в [строка 2]".IO::Socket
а такжеperlfunc
pods не говорят, хотя perlfunc приводит пример сTCP_NODELAY
что делает это похоже на то, что выше должно работать.
(быстрое примечание: Я ответил на свой собственный вопрос, как мог, но, конечно, приветствую лучший ответ. Самым очевидным «лучше» было бы, чтобы он был переносимым, по крайней мере на машинах POSIX