Solved

How to use setsockopt under unix /solaris 2.6

Posted on 2004-08-18
9
1,610 Views
Last Modified: 2013-12-05
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
Comment
Question by:bmanik
  • 4
  • 2
9 Comments
 
LVL 6

Accepted Solution

by:
bkthompson2112 earned 500 total points
ID: 11834781
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
 

Author Comment

by:bmanik
ID: 11835141
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
 
LVL 6

Expert Comment

by:bkthompson2112
ID: 11835156
> Formal argument 4

would be &tv.

Make sure you've cast it to the correct type.
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 

Author Comment

by:bmanik
ID: 11835268
Thanks , I did type cast it and its now clean compiled , going ahead for testing it now .
0
 
LVL 6

Expert Comment

by:bkthompson2112
ID: 11835347
You're welcome.  Hope it's working now.
0
 
LVL 45

Expert Comment

by:sunnycoder
ID: 11838729
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
 
LVL 6

Expert Comment

by:bkthompson2112
ID: 11914580
>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

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A short article about problems I had with the new location API and permissions in Marshmallow
This article will inform Clients about common and important expectations from the freelancers (Experts) who are looking at your Gig.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question