Я пытаюсь отправить /recv raw ethernet под Ubuntu.
У меня нет проблем с запуском кода в c через терминал.
Однако, когда я попытался преобразовать код в c++ с помощью NetBeans IDE 6.9, он не смог открыть сырой сокет. призвание:
socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1)
всегда возвращать -1. ошибка: "операция не разрешена"
Вам всегда нужны права root для отправки/получения чего-либо через сырые сокеты.
Здесь, как настроить NetBeans для запуска вашего приложения с правами root:
Right click on project → Properties → Run
Run Command
в sudo "${OUTPUT_PATH}"
(по умолчанию "${OUTPUT_PATH}"
)