anonymous
написал 4 ноября 2005 года в 11:07 (915 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Приступил к изучению raw-сокетов и запутался. В одних примерах рекомендуют создавать сырой сокет так:
int s;
s = socket(AF_INET, SOCK_RAW, );
в других так:
int s;
s = socket(PF_PACKET, SOCK_RAW, );
У Стивенса, например, нет упоминания про семейство PF_PACKET. Подскажите чайнику — а как же правильнее? Экпериментирую на линуксе, ядро 2.4.20
Спасибо.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Как Стивенс сказал, так и правильно. Можешь не сомневаться.
То есть можно ли считать что PF_PACKET это linux-specific фича?
Повторяю.
<font color=«red»>Как Стивенс сказал, так и правильно. Можешь не сомневаться.</font>
Следовательно, по Стивенсу такого семейства нет и значит использовать его не нужно, как же тогда получить доступ ко всему пакету (включая linl-level), кроме как заюзав PF_PACKET (во всех примерах для линукса используется именно это семейство + SOCK_RAW тип сокета).
Поясните неразумному, спасибо!
На самом деле и Стивенс не всегда прав
http://www.google.com/search?hs=fgu&hl=en&lr=&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&q=PF_PACKET+AF_INET+difference&btnG=Search