Эта проблема действительно загадочное для меня: я следующий скрипт работает на сервере VMWare 2.0:Перл работает в VMWare сервере, но не в VMWare ESXi
#!/usr/local/bin/perl
# server (transmitter)
use strict;
use IO::Socket::Multicast6;
use IO::Interface;
use constant GROUP => "235.1.1.2";
use constant PORT => "3000";
my $sock = IO::Socket::Multicast6->new(
Proto=>"udp",
Domain=>AF_INET,
PeerAddr=>GROUP,
PeerPort=>PORT);
$sock->mcast_if("eth1");
$sock->mcast_ttl(10);
while (1) {
my $message = localtime();
$sock->send($message) || die "Could not send: $!";
} continue {
sleep 4;
}
Он отлично работает на VMWare сервере. Я клонировать эту виртуальную машину на сервере Exsi но работает точно такую же копию виртуальной машины, запустив сценарий, и я получаю следующее сообщение об ошибке:
Невозможно вызвать метод «mcast_if» на неопределенное значение
Im действительно озадачен этим, так как я не уверен, в чем проблема. нет ничего другого, кроме процессора, работающего на обеих машинах, но я не вижу, как что-то такое низкое значение может вызвать проблему, но я могу ошибаться. perl -d не очень помог. Спасибо.
Да, это полностью помогло, и я немного смущен. У этих виртуальных пар есть сценарий, который сбрасывает маршруты, чтобы не включать в себя GW по умолчанию, поскольку это среда, содержащаяся в ней. Поскольку у этой виртуальной машины нет маршрута для mcast-трафика, он не может создать сокет. Спасибо за быстрый ответ. – salparadise