问题描述
- Android NDK如何获取原始套接字(Raw Socket)
-
这是我在学校的本科毕业设计。是要在安卓手机上实现Traceroute功能。我编写了C语言的tracetoute程序,已经在Linux平台上正确运行了,但是移植到Android平台上的时候,总是无法获取到原始套接字啊,int sockId = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP),sockid总是小于0。我的手机已经获取root权限了(su chmod777+一个刷过的安卓手机)。求助啊啊啊,已经卡在这好久了
解决方案
1。必须用root用户运行,getuid()是0吗?
2。参考busybox源码,busybox里有这个,亲测Android上可用。
3。实在不行,你就别用ndk了,用arm-linux-gcc并静态链接glibc试试吧。
时间: 2025-01-01 16:00:36