首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机网络相关功能在android中随机阻塞

本机网络相关功能在android中随机阻塞
EN

Stack Overflow用户
提问于 2017-12-10 18:56:46
回答 1查看 29关注 0票数 0

我有一个用C编写的库,我使用的是一个Android应用程序。我发现在执行各种功能时,应用程序有时会阻塞(常见的是它们都与网络有关)。

我正在运行Android 6的一个真正的Android设备上进行测试。这个库是用NDK版本21编译的。

到目前为止,我已经用三个函数- getaddrinfopollsocket观察到了这种行为。

代码语言:javascript
复制
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
getaddrinfo(hostname, port, &hints, &result);

////

struct pollfd wait = {
    .fd = fd,
    .events = event,
    .revents = 0
};
status = poll(&wait, 1, 10000);

////

fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol);

在程序开始运行后,每个函数都会被多次调用。同一个调用一次可以正常工作,下一次可以无限期地(至少几分钟)阻塞。设备上的互联网连接似乎很好。

有什么想法吗?我如何处理调试这样的问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-11 12:41:15

我并没有真正找到问题的原因,但我找到了解决问题的方法。代码的一部分是由其他人编写的,我不知道它到底在做什么。在重写了这部分之后,一切都开始运转良好。

除其他外,该代码还生成了一个使用fork()的新进程。我怀疑这个问题与此有关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47742333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档