gpt4 book ai didi

android - android中 native 网络相关功能随机阻塞

转载 作者:行者123 更新时间:2023-11-30 14:52:07 25 4
gpt4 key购买 nike

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

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

到目前为止,我已经通过 3 个函数观察到了这种行为 - getaddrinfopollsocket:

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);

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

有什么想法吗?我怎样才能调试这样的问题?

最佳答案

我实际上没有找到问题的原因,但我找到了解决方法。部分代码是由其他人编写的,我不确定它到底在做什么。重写这部分后,一切开始正常工作。

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

关于android - android中 native 网络相关功能随机阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47742333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com