Python Glossary English

все Python 3socketфункция

socket.getprotobyname()

имена и адреса

Переводит имя протокола ('tcp', 'udp', 'icmp') в его номер для третьего аргумента socket().

Синтаксис

socket.getprotobyname(protocolname) -> int

Нужна почти только для сырых сокетов (SOCK_RAW): для TCP и UDP протокол выбирается сам при proto=0. Номера берутся из локального файла /etc/protocols, а не из сети; в минимальных Docker-образах его нет, и вызов падает OSError. Надёжнее готовые константы socket.IPPROTO_TCP и IPPROTO_UDP.

Примеры

import socket
print(socket.getprotobyname('tcp'))  # → 6
print(socket.getprotobyname('udp') == socket.IPPROTO_UDP)  # → True
socket.getprotobyname('no-such-proto')  # → OSError: protocol not found

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности