我面临一个奇怪的问题,无法解释的东西;)Android NDK - 连接()块系统
现在我正在开发客户端程序工作的Android手机。 这个应用程序连接远程服务器并做一些事情。
使用WIFI模式在C++(NDK)和Android UI中制作的核心库 但3G数据模式时系统冻结。
我得到了这个冻结的原因,它在connect()函数中。
这个奇怪的东西是socket在connect()之前已经设置了NON-BLOCK模式。
m_nSock = socket(AF_INET, SOCK_STREAM, 0);
if (m_nSock <= 0)
{
close(m_nSock);
return -1;
}
flags = fcntl(m_nSock, F_GETFL, 0);
fcntl(m_nSock, F_SETFL, flags | O_NONBLOCK);
struct sockaddr_in AddrClient;
memset(&AddrClient, 0x00, sizeof(AddrClient));
AddrClient.sin_family = AF_INET;
AddrClient.sin_addr.s_addr = inet_addr(szIP);
AddrClient.sin_port = htons(nPort);
nRet = connect(m_nSock, (struct sockaddr*)&AddrClient, sizeof(AddrClient));
阻塞总是需要约21秒。 (它可能会显示默认时间在内核的某处使用,我想。)我该如何解决这个问题?我应该搜索什么?
任何建议是值得欢迎的。
在此先感谢。
我试过了,但失败了。感谢您的回答无论如何:) – JayMuzie