bmanik
asked on
How to use setsockopt under unix /solaris 2.6
I am trying to add a timeout to send and recv functions for TCPSocket in C++ on unix/solaris 2.6 environment .
to solve I am trying to use setsockopt with SO_RCVTIMEO for recv and I am getting the compilation errors as
code:
struct timeval tv;
tv.tv_sec = timeout_n ;
tv.tv_usec = 0 ;
setsockopt( sockDesc , SOL_SOCKET , SO_RCVTIMEO , &tv , sizeof(tv) ) ;
setsockopt( sockDesc , SOL_SOCKET , SO_SNDTIMEO , &tv , sizeof(tv) ) ;
Error:
Formal argument 4 of type const char* in call to setsockopt(int, int, int, const char*, int) is being passed timeval*.
Please advise.
to solve I am trying to use setsockopt with SO_RCVTIMEO for recv and I am getting the compilation errors as
code:
struct timeval tv;
tv.tv_sec = timeout_n ;
tv.tv_usec = 0 ;
setsockopt( sockDesc , SOL_SOCKET , SO_RCVTIMEO , &tv , sizeof(tv) ) ;
setsockopt( sockDesc , SOL_SOCKET , SO_SNDTIMEO , &tv , sizeof(tv) ) ;
Error:
Formal argument 4 of type const char* in call to setsockopt(int, int, int, const char*, int) is being passed timeval*.
Please advise.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
> Formal argument 4
would be &tv.
Make sure you've cast it to the correct type.
would be &tv.
Make sure you've cast it to the correct type.
ASKER
Thanks , I did type cast it and its now clean compiled , going ahead for testing it now .
You're welcome. Hope it's working now.
check the man page .... this particular option, though existing is not necessarily working on all platforms.
It wont report an error but will be silently ignored
It wont report an error but will be silently ignored
>I did type cast it and its now clean compiled , going ahead for testing it now
bmanik, how did the testing go? is it working now?
bmanik, how did the testing go? is it working now?
ASKER