C++无法使用Ubuntu和Netbeans 6.9打开原始套接字6.9

C++无法使用Ubuntu和Netbeans 6.9打开原始套接字6.9

问题描述:

我想在Ubuntu下发送/ recv原始以太网。C++无法使用Ubuntu和Netbeans 6.9打开原始套接字6.9

我没有问题通过终端在c中运行代码。

但是,当我试图使用 Netbeans IDE 6.9将代码转换为C++时,它无法打开原始套接字。 电话:

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

总是返回-1。错误:“操作不允许”

+0

请问,如果工作你以root身份通过终端运行你的应用程序? – ollo

+0

我想通过使用“sudo” 通过终端运行代码解决了这个问题。 谷歌搜索我明白,有可能配置Netbeans做同样的事情。我仍然无法做到这一点.. –

你总是需要权限发送/通过原始套接字收到东西。

下面介绍如何使用NetBeans配置来运行你的应用程序根目录:

  1. Right click on project -> Properties -> Run
  2. 设置Run Commandsudo "${OUTPUT_PATH}"(默认为"${OUTPUT_PATH}"