Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1642
  • Last Modified:

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.

0
bmanik
Asked:
bmanik
  • 4
  • 2
1 Solution
 
bkthompson2112Commented:
Hi bmanik,

Using Tru64, this works:
setsockopt( sockDesc , SOL_SOCKET , SO_RCVTIMEO , (void *) &tv , sizeof(tv) ) ;   // ---------added (void *)

What's the man page say?

bkt
0
 
bmanikAuthor Commented:
man page doesnt specify SO_RCVTIMEO ,but I was following richard stevens book and coded accordingly , there must be some other way to set the time outs , pls advise .
0
 
bkthompson2112Commented:
> Formal argument 4

would be &tv.

Make sure you've cast it to the correct type.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
bmanikAuthor Commented:
Thanks , I did type cast it and its now clean compiled , going ahead for testing it now .
0
 
bkthompson2112Commented:
You're welcome.  Hope it's working now.
0
 
sunnycoderCommented:
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
0
 
bkthompson2112Commented:
>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?
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now