当前位置: 代码迷 >> Android >> jni层调用socket(AF_INET, SOCK_DGRAM, 零)失败
  详细解决方案

jni层调用socket(AF_INET, SOCK_DGRAM, 零)失败

热度:448   发布时间:2016-05-01 10:32:31.0
jni层调用socket(AF_INET, SOCK_DGRAM, 0)失败
如题,

本人在写一个CAN总线的JNI库供上层的Java应用层序调用。

由于can的kernel底层驱动是适用的socketcan架构,所以JNI库里面是适用linux socket编程来调用驱动.

我发现 在JNI库里面调用socket(AF_INET, SOCK_DGRAM, 0)失败,返回值是0xffffffff。

请问大侠们有没有遇到类似的问题?给些建议吗?
android?jni?socket?

------解决方案--------------------
这个根socket没有关系吧,估计sokcet接收命令后处理返回的结果不对
------解决方案--------------------
引用:
Quote: 引用:

这个根socket没有关系吧,估计sokcet接收命令后处理返回的结果不对


那为什么 “sokcet接收命令后处理返回的结果不对” ?


这样,首先你先确保socket整个调用流程是否正确
然后你看看socket接收命令后处理那块是否正确.
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

这个根socket没有关系吧,估计sokcet接收命令后处理返回的结果不对


那为什么 “sokcet接收命令后处理返回的结果不对” ?


这样,首先你先确保socket整个调用流程是否正确
然后你看看socket接收命令后处理那块是否正确.


我是上层JNI代码,socket是linux标准API,我没有必要去管理socket里面的实现吧?

无论如何,我运行一下“socket(AF_INET, SOCK_DGRAM, 0)”应该不会失败吧?



嗯,应该不会失败.我在想adb shell和jni里面调很大的区别就是adb shell里面有root权限...

其它我不知道你的代码,所以不是很清楚.
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

这个根socket没有关系吧,估计sokcet接收命令后处理返回的结果不对


那为什么 “sokcet接收命令后处理返回的结果不对” ?


这样,首先你先确保socket整个调用流程是否正确
然后你看看socket接收命令后处理那块是否正确.


我是上层JNI代码,socket是linux标准API,我没有必要去管理socket里面的实现吧?

无论如何,我运行一下“socket(AF_INET, SOCK_DGRAM, 0)”应该不会失败吧?



嗯,应该不会失败.我在想adb shell和jni里面调很大的区别就是adb shell里面有root权限...

其它我不知道你的代码,所以不是很清楚.


也不对,想了半天,没你的代码,不知道问题在哪
  相关解决方案