getnameinfo prototype asks for sockaddr not sockaddr_in ?

Posted by Jane on Stack Overflow See other posts from Stack Overflow or by Jane
Published on 2010-04-04T22:55:07Z Indexed on 2010/04/04 23:03 UTC
Read the original article Hit count: 426

Filed under:
|
|
|
|

The getnameinfo prototype asks for sockaddr but I have only seen examples using sockaddr_in. Can this example be re-written for sockaddr ? sin_family becomes sa_family but what about sin_port and sin_addr ? How are they included in sa_data ?


struct sockaddr{
    unsigned short  sa_family;
    char            sa_data[14];
};

struct sockaddr_in{ short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8]; };


struct sockaddr_in sin;
memset(&sin, 0, sizeof(sin));
sin.sin_family      = AF_INET;
sin.sin_addr.s_addr = inet_addr(IPvar);
sin.sin_port        = 0; // If 0, port is chosen by system

getnameinfo( (struct sockaddr *)&sin, sizeof(sin), buffervar, sizeof(buffervar), NULL, 0, 0);

© Stack Overflow or respective owner

Related posts about c

    Related posts about socket