2 qq 29791809 qq_29791809 于 2016.04.22 19:47 提问

Android NDK如何获取原始套接字(Raw Socket)

这是我在学校的本科毕业设计。是要在安卓手机上实现Traceroute功能。我编写了C语言的tracetoute程序,已经在Linux平台上正确运行了,但是移植到Android平台上的时候,总是无法获取到原始套接字啊,int sockId = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP),sockid总是小于0。我的手机已经获取root权限了(su chmod777+一个刷过的安卓手机)。求助啊啊啊,已经卡在这好久了

1个回答

zuishikonghuan
zuishikonghuan   2016.04.22 23:41

1。必须用root用户运行,getuid()是0吗?
2。参考busybox源码,busybox里有这个,亲测Android上可用。
3。实在不行,你就别用ndk了,用arm-linux-gcc并静态链接glibc试试吧。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!