ho applicazione Android, che ha bisogno di stabilire unix connessione socket di dominio con nostra libreria C++ (usando Android NDK)comunicazione LocalSocket con Dominio Unix in Android NDK
public static String SOCKET_ADDRESS = "your.local.socket.address"; // STRING
C'è LocalSocket in Java che accetta "stringa "(your.local.socket.address)
#define ADDRESS "/tmp/unix.str" /* ABSOLUTE PATH */
struct sockaddr_un saun, fsaun;
if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
perror("server: socket");
exit(1);
}
saun.sun_family = AF_UNIX;
strcpy(saun.sun_path, ADDRESS);
Ma il socket di dominio unix che è al livello nativo accetta "percorso assoluto". Quindi, come possono queste due parti comunicare tra loro?
prega di condividere qualche esempio, se possibile
Questo mi ha aiutato molto! Tuttavia ho un problema con ottenere sockaddr del client e la lunghezza sul lato server. Voglio che il client invii un messaggio al server (tramite UDP) e quindi il server dovrebbe rispondere al cliente con le informazioni. Io uso recvfrom (_serverSocket, _messageBuffer, INPUT_BUFFER, 0, (struct sockaddr *) e _ clientAddress, & _clientAddressLength); sul lato server, tuttavia _clientAddressLength è zero e _clientAddress è vuoto e non riesco a rispondere al client, nonostante il fatto che il messaggio da client a server sia stato ricevuto correttamente. –
Questo è il mio codice http://stackoverflow.com/questions/31755790/sockets-unix-domain-udp-c-recvfrom-fail-to-populate-the-source-address?noredirect=1#comment51445587_31755790 –