Автор Тема: UDP socket - ???  (Прочитано 2070 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wells

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
UDP socket - ???
« : 08 Октября 2004, 11:19:55 »
Нужно записать в удалённый UDP порт, а затем прочитать оттуда. Написал следующее:
use strict;
use IO::Socket;
my $rem_port = 2967;
my $proto = \'udp\';
my $send_msg = "\\x00\\xCE\\x00\\x00\\x00\\xC0\\x01\\x01\\x00\\x00\\x00\\x00\\xDA\\x49\\x1F\\x10";
my $size_msg = 466;
my $objSocket = IO::Socket::INET->new(PeerAddr => \'172.17.242.1\', PeerPort => $rem_port, Proto => $proto, Type => SOCK_DGRAM, Timeout => 5);
$objSocket->send($send_msg);
$objSocket->recv(my $recv_msg, $size_msg);
if (length($recv_msg) > 0) {
print "Is OK!\\n";
}
else {
print "Is bad!\\n";
}
$objSocket->shutdown(2);

Если порт прослушивается, то всё нормально. Если нет то тоже всё OK! Но если порт закрыт, например фаерволом, то timeout не отрабатывает. А очень нужно. Всё это под Windows. ActivePerl версия 5.8.4.810

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28