LocalSocket-Kommunikation mit Unix-Domäne in Android NDK

9

Ich habe Android-Anwendung, die Unix-Domain-Socket-Verbindung mit einrichten muss unsere C ++ - Bibliothek (mit Android NDK)

%Vor%

Es gibt LocalSocket in Java, das "string" (your.local.socket.address) akzeptiert

%Vor%

Aber der Unix-Domain-Socket, der auf der nativen Schicht ist, akzeptiert "absoluten Pfad". Wie können diese beiden Parteien miteinander kommunizieren?

Bitte teilen Sie ein beliebiges Beispiel mit, wenn möglich

    
RDX 01.02.2013, 09:51
quelle

2 Antworten

13

LocalSocket verwendet den abstrakten Linux-Namespace anstelle des Dateisystems. In C werden diese Adressen angegeben, indem '\ 0' dem Pfad vorangestellt wird.

%Vor%

Beachten Sie auch, dass Sie sizeof(sockaddr_un) nicht an bind oder sendto übergeben sollten, da alle Bytes nach dem Zeichen '\ 0' als abstrakter Socket-Name interpretiert werden. Berechnen und übergeben Sie stattdessen die tatsächliche Größe:

%Vor%     
John 14.10.2014, 12:58
quelle
0

Pro Android C ++ mit dem NDK Buch, Kapitel 10 half mir, mit dem gleichen zu beginnen.

    
RDX 06.02.2013 07:09
quelle