Solved

How to use setsockopt under unix /solaris 2.6

Posted on 2004-08-18
9
1,605 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
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 

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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

This is about my first experience with programming Arduino.
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

705 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now