How do I get my server to find out the clients address / host- name?
Answer / chaitanya
After accept()ing a connection, use getpeername() to get the address of the client. The client's address is of course, also returned on the accept(), but it is essential to initialise the address-length parameter before the accept call for this will work.
int t;
int len;
struct sockaddr_in sin;
struct hostent *host;
len = sizeof sin;
if (getpeername(t, (struct sockaddr *)
&sin, &len) < 0)
perror("getpeername");
else {
if ((host = gethostbyaddr((char *)
&sin.sin_addr,sizeof sin.sin_addr,
AF_INET)) == NULL)
perror("gethostbyaddr");
else printf("remote host is '%s'n",
host->h_name);
}
Is This Answer Correct ? | 0 Yes | 0 No |
Are unix sockets faster than tcp?
Is socket a hardware or software?
What is socket programming in java?
How come I get address already in use from bind()?
Why sockets are used?
What is a socket file?
How come only the first part of my datagram is getting through?
How do Sockets Work?
Are sockets files?
What does af mean in sockets?
Why do we need socket programming?
Explain the TIME_WAIT state.