Вот кусочек кода
.
.
.
my $socket = IO::Socket::INET -> new (
PeerAddr => '192.168.250.1',
LocalPort => 9996,
Proto =>'udp'
) or die "$!\n";
my $port = $socket -> peerport();
my $host = $socket -> peerhost();
my $host2 = $socket -> sockhost();
my $port2 = $socket -> sockport();
print "port = '$port' host = '$host' port2
= '$port2' host2 = '$host2' \n";
while (1)
{
my $from = $socket -> recv (my $data, 8192, 0);
if (length ($data) < 16) {
warn ("Invalid packet length " . length ($data) .
" received\n");
next;
}
my ($version, $flows, $uptime, $secs, $usecs) = unpack ('nnNNN', $data);
print "*************************************************\n";
#my $len = length ($data);
print("version = '$version'\n");
print("flows = '$flows'\n");
print("uptime = '$uptime'\n");
print("secs = '$secs'\n");
print("usecs = '$usecs'\n");
print "*************************************************\n";
}
.
.
.
Есть Cisco 1700 - адрес 192.168.250.1
Порт данных 9996
Хочется читать данные
Для этого создаю сокет
Обратите внимание на то, как создаётся
сокет!!!
Я указываю PeerAddr И LocalPort(!)
И это работает, но я не понимаю как!
Ведь я просто создаю клиента и должен действовать по схеме
socket
connect
recv|send
На кой указывать LocalPort???
Если указать PeerPort 9996 - не работает!
В чём моя ошибка?
Форум —
Development
