Программирование сокетов в Perl - PullRequest
2 голосов
/ 09 сентября 2011

Я новичок в программировании сокетов. Вот что я пытаюсь сделать:

Я хотел бы передать пакет на другой сервер в сети через соединение UDP.

Вот фрагмент кода, который я написал в Perl:

# create udp socket
$sock = IO::Socket::INET->new(
  Proto       => "udp",
  PeerPort    => '5001',
  PeerAddr    => defined $ip ? $ip : '10.42.43.2'
) or die "Socket could not be created: $!\n";

Я хотел бы обработать исключение, когда хост (10.42.43.2) недоступен. Есть идеи как это можно сделать?

Большое вам спасибо

1 Ответ

7 голосов
/ 09 сентября 2011

UDP является ненадежным протоколом, что означает, что он не предоставляет средства для определения успешности доставки или нет.

Один из вариантовПереключитесь на надежный протокол, такой как TCP.

Другой способ - обрабатывать уведомления о доставке самостоятельно.Пусть хост отправит ответ по получении вашего пакета.Если в течение X секунд не было получено никакого ответа, произошла ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...