こんにちは、次のようなソケットを使用して、より高速な ping 機能を実装するために、ネイティブ コードでソケットを作成したいと考えています。
if ( (socketid = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0)
{
perror("socket"); /* probably not running as superuser */
__android_log_print(ANDROID_LOG_DEBUG,TAG,"socket error: ret %d error: %d",socketid,errno);
return false;
}
しかし、これはerrno 1(EPERMまたは操作が許可されていません)を返すことに気付きました.奇妙なことに、インターネット許可を設定し、私のAndroidデバイスはエミュレータx86です(ルート化されています)。しかし、解決策があるかどうか、または現時点では完全に不可能であると仮定するかどうかをここで尋ねます。