c ++ не может открыть необработанный сокет, используя Ubuntu и Netbeans 6.9

0

Я пытаюсь отправить /recv raw ethernet под Ubuntu.

У меня нет проблем с запуском кода в c через терминал.

Однако, когда я попытался преобразовать код в c++ с помощью NetBeans IDE 6.9, он не смог открыть сырой сокет. призвание:

socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1)

всегда возвращать -1. ошибка: "операция не разрешена"

  • 0
    Работает ли это, если вы запускаете приложение через терминал от имени пользователя root?
  • 0
    Я понял, что запуск кода через терминал с помощью «sudo» решает проблему. Поглядывая вокруг, я понимаю, что есть возможность настроить Netbeans для того же. Мне так и не удалось это сделать ..
Теги:
netbeans

1 ответ

0

Вам всегда нужны права root для отправки/получения чего-либо через сырые сокеты.

Здесь, как настроить NetBeans для запуска вашего приложения с правами root:

  1. Right click on project → Properties → Run
  2. Установите Run Command в sudo "${OUTPUT_PATH}" (по умолчанию "${OUTPUT_PATH}")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню