Results 1 to 1 of 1
Hi,
Ive created a unix domain socket and bind it to an address (of type sockaddr_un of course).
when im trying to get the socket name by doing getsockname( ) ...
- 12-07-2010 #1Just Joined!
- Join Date
- Nov 2010
- Posts
- 4
unix domain sockets
Hi,
Ive created a unix domain socket and bind it to an address (of type sockaddr_un of course).
when im trying to get the socket name by doing getsockname( ) I get an empty string.
/this is the part of the code up to the point where i try to retrieve the socket path name.Code:#define TERM_SERV "/home/elad/LteCli/server/term_serv_sock" *setting a socket and binding it*/ unsigned int create_socket() { unsigned int s; //socket struct sockaddr_un local; int len; s = socket(AF_UNIX, SOCK_STREAM, 0); if (-1 == s) { perror("socket"); exit(1); } local.sun_family = AF_UNIX; strcpy(local.sun_path, TERM_SERV); unlink(local.sun_path); len = sizeof(local.sun_family) + strlen(local.sun_path); if ((bind(s, (struct sockaddr_un *)&local, len)) == -1) { perror("bind"); exit(1); } return s; } int main(){ int len, nbytes; char *buffer = (char *)malloc(101); struct sockaddr_un remote, tester; FILE *fp; fd_set master; //master file descriptor fd_set read_fds; //temp file descriptor used in select() int fdmax; //max file descriptor int listener; //listening file descriptor int newfd; //newly accepted socket descriptor int i, n, temp; /*init*/ memset(buffer, 0, sizeof(buffer)); FD_ZERO(&master); FD_ZERO(&read_fds); listener = create_socket(); if( (listen(listener, 10)) == -1) { perror("listen"); exit(1); } temp = sizeof(tester.sun_family) + strlen(tester.sun_path); getsockname(listener, &tester,(socklen_t *) &temp);
can somepne help please?


Reply With Quote