PDA

View Full Version : C++ socket programming: struct sockaddr



mucha
November 28th, 2006, 02:46 AM
Hi, I've just started with c++ for real. And I'm now trying some socketprogramming.

In a function I got this:

struct sockaddr their_addr;
this->sockfd = accept(*sockfd, &their_addr, addrlen);
cout << their_addr.sin_addr << endl;

I want to get the host of the one that is connecting.
When I compile it I get these errors:

httpconn.cpp: In member function ‘bool HttpConn::approve(int*, socklen_t*)’:
httpconn.cpp:14: error: ‘struct sockaddr’ has no member named ‘sin_addr’

Feels I've tried everything, please help :)

duff
November 28th, 2006, 04:59 AM
sin_addr is in sockaddr_in, not sockaddr.

daniminas
November 28th, 2006, 12:40 PM
:-k
struct sockaddr_in
{
short int sin_family; /* Famyly of the address*/
unsigned short int sin_port; /* Port */
struct in_addr sin_addr; /* Network address */
unsigned char sin_zero[8]; /* Same size of struct sockaddr */
};

mucha
November 28th, 2006, 01:13 PM
Thanks, missed that little _in after :) Now it works great