Здравствуйте, коллеги!
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
i = s.sendto("Hello".encode(), (127.0.0.1, 8080))
Насколько я понял, если 127.0.0.1 не слушает UDP порт 8080, то сервер должен вернуть ICMP сообщение, что невозможно доставить сообщение.
Собственно, вопрос: как эту ситуацию отлавливать? sendto просто возвращает число отправленных байтов и ему наплевать дошел ли пакет до получателя или нет. Как понять, что его ни кто не слушает? Понятно, что если на другом конце ни кто не слушает UDP 8080, то recvfrom ни когда ни чего не получит, но мне интересно как определить, открыть ли нужный UDP порт?