c - socket connect() vs bind() -
both connect()
, bind()
system calls 'associate' socket file descriptor address (typically ip/port combination). prototypes like:-
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
and
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
what exact difference between 2 calls? when should 1 use connect()
, when bind()
?
specifically, in sample server client codes, found client using connect()
, server using bind()
call. reason not clear me.
to make understanding better , lets find out bind , connect comes picture,
further positioning of 2 calls , clarified sourav,
bind() associates socket local address [that's why server side binds, clients can use address connect server.] connect() used connect remote [server] address, that's why client side, connect [read as: connect server] used.
we cannot use them interchangeably (even when have client/server on same machine) because of specific roles , corresponding implementation.
i further recommend correlate these calls tcp/ip handshake .
so , send syn here , connect() . while bind() used defining communication end point.
hope helps!!
Comments
Post a Comment