在创建 RAW_SOCKET 错误时,如操作不允许

dev*_*ev9 3 c sockets voip

在我的 android 应用程序中,我想创建 RAW SOCKET,但是当我尝试通过以下代码创建它时,它会出现类似操作不允许的错误。

int sd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
if(sd < 0)
{
    ortp_warning("socket() error %s",getSocketError());
    // If something wrong just exit
    //exit(-1);
}
else
{
    ortp_warning("socket() - Using SOCK_RAW socket and UDP protocol is OK.\n");
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决。?

edm*_*dmz 5

您必须具有 root 权限才能创建原始套接字。这是一项特权行动;以 sudo 或 root 身份运行。