Mam Android aplikacji, która musi ustalić unix połączenie przez gniazdo domeny z naszej biblioteka C++ (z użyciem Android NDK)komunikacja LocalSocket z Unix domeny w Android NDK
public static String SOCKET_ADDRESS = "your.local.socket.address"; // STRING
Jest LocalSocket w Javie, który przyjmuje „string "(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);
Ale gniazda UNIX, która jest w natywnej warstwy przyjmuje«absolutnej»ścieżki. Jak zatem te dwie strony mogą się ze sobą komunikować?
Proszę podzielić żadnego przykładu, jeśli to możliwe
Bardzo mi to pomogło! Jednak mam problem z uzyskiwaniem sockaddr klienta i jego długości po stronie serwera. Chcę, aby klient wysłał wiadomość do serwera (przez UDP), a następnie serwer powinien odpowiedzieć klientowi informacjami. Używam recvfrom (_serverSocket, _messageBuffer, INPUT_BUFFER, 0, (struct sockaddr *) & _ clientAddress, & _clientAddressLength); po stronie serwera, _clientAddressLength ma wartość zero, a parametr _clientAddress jest pusty i nie mogę odpowiedzieć na klienta, mimo że wiadomość od klienta do serwera została odebrana poprawnie. –
To jest mój kod http://stackoverflow.com/questions/31755790/sockets-unix-domain-udp-c-recvfrom-fail-to-populate-the-source-address?noredirect=1#comment51445587_31755790 –