когда IPPROTO_UDP требуется?

Когда IPPROTO_UDP требуется?

Существует ли когда-нибудь случай, где UDP не является протоколом по умолчанию для SOCK_DGRAM? (реальные случаи, не гипотетические ", это могло бы быть","),

т.е. каковы ситуации, где следующие две строки не произвели бы идентичное поведение?

if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
if ((s=socket(AF_INET, SOCK_DGRAM, 0))==-1)
23
задан Gonzalo 23 December 2009 в 20:45
поделиться

1 ответ

Учитывая эти заявления:

tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
raw_socket = socket(AF_INET, SOCK_RAW, protocol);

на странице руководства linux ip(7) написано:

Единственными допустимыми значениями для протокола являются 0 и IPPROTO_TCP для TCP-сокетов, и 0 и IPPROTO_UDP для UDP-сокетов. Для SOCK_RAW вы можете указать действующий IP-протокол IANA, определенный в RFC 1700 назначенные номера.

Эти две строки в ваших вопросах всегда будут давать один и тот же результат.

.
15
ответ дан 29 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: