我面臨一個奇怪的問題,無法解釋的東西;)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