nixp.ru v3.0

23 января 2017,
понедельник,
07:42:00 MSK

Аутсорсинг Linux с компанией «Флант»
anonymous написал 4 ноября 2005 года в 11:07 (473 просмотра) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Приступил к изучению raw-сокетов и запутался. В одних примерах рекомендуют создавать сырой сокет так:

int s;

s = socket(AF_INET, SOCK_RAW, );

в других так:

int s;

s = socket(PF_PACKET, SOCK_RAW, );

У Стивенса, например, нет упоминания про семейство PF_PACKET. Подскажите чайнику — а как же правильнее? Экпериментирую на линуксе, ядро 2.4.20

Спасибо.

myst

Как Стивенс сказал, так и правильно. Можешь не сомневаться.

anonymous

То есть можно ли считать что PF_PACKET это linux-specific фича?

myst

Повторяю.

<font color=«red»>Как Стивенс сказал, так и правильно. Можешь не сомневаться.</font>

anonymous

Следовательно, по Стивенсу такого семейства нет и значит использовать его не нужно, как же тогда получить доступ ко всему пакету (включая linl-level), кроме как заюзав PF_PACKET (во всех примерах для линукса используется именно это семейство + SOCK_RAW тип сокета).

Поясните неразумному, спасибо!

sas

На самом деле и Стивенс не всегда прав

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

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.