![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
konshyn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
В принципе, всего, чего я боялся, это то, что придется писать свой "парсер".
Но оказалось намного проще. Хорошо, что ты разъяснил, что такое ethernet-фрейм и где моя ошибка. И Спасибо за картинку:) Теперь, когда получаю пакет, - получаю его полностью без изменений - то просто в начало добавляю два поля: адрес получателя и адрес отправителя, т.е. 12 байт(2 mac-адреса). а дальше этот же пакет отправляю функцией sendto(); Для тех, кто будет мучиться с этой функцией при отправке своего пакета: прототип функции: ssize_t sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); Когда вы полностью вручную формируете пакет, то в пакете уже должны содержаться адреса получателя, отправителя и другие данные. и сокет для отправки - пакетый, т.е. send_socket = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); то отправлять этот пакет нужно без адресной структуры: sendto(send_socket, buff, sizeof(buff), 0, NULL, 0); В принципе, ничего сложного. Спасибо StopPanic'у. ![]() Поставил бы "+" в карму, да нельзя:( UPD: Перечитал сообщение: вот это) и теперь понял, о чем ты говорил:) Это сообщение отредактировал(а) konshyn - 23.9.2013, 14:22 -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
||||
|
||||
konshyn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Мне нельзя. У меня нет еще 100 постов :( Но тебе спасибо:) -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |