I'm porting a tinyish server to Android using the NDK. The ultimate
goal is for my app to interact with the server through JNI and Android
Service classes.
I've run across a stumbling block, however. The server fails to start
as soon as I call accept() on the socket. I've pasted the code
below. All I want to to is open a socket that listens to localhost
requests of port 8888.
If anyone can give me advice, I would greatly appreciate it. Thanks,
-------
static void
socket_listen_to(const char *host_name, unsigned int port) {
struct sockaddr_in address;
int listening_socket;
int connection_socket;
if (host_name) {
struct hostent *host_data;
host_data = gethostbyname(host_name);
if (!host_data || host_data->h_addrtype != AF_INET || host_data-
>h_length != sizeof address.sin_addr) {
exit(EXIT_FAILURE);
}
host_name = host_data->h_name;
memcpy(&address.sin_addr, host_data->h_addr_list[0],
sizeof address.sin_addr);
}
listening_socket = socket(PF_INET, SOCK_STREAM, 0);
if (listening_socket == -1) {
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_port = htons((unsigned short) port);
if (bind(listening_socket, (struct sockaddr *) &address, sizeof
address) == -1
|| listen(listening_socket, 5) == -1 ) {
closesocket(listening_socket);
exit(EXIT_FAILURE);
}
connection_socket = accept(listening_socket, NULL, NULL);
if (connection_socket == -1 ) {
closesocket(listening_socket);
exit(EXIT_FAILURE);
}
}
unsigned int port = 8888;
const char host_name[] = "localhost";
socket_listen_at(host_name, port, >p_input_FILE, >p_output_FILE);
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en