How can I try to read data from socket with timeout?
I know, select, pselect, poll, has a timeout field, but using of them disables “tcp fast-path” in tcp reno stack.
The only idea I have is to use recv(fd, …, MSG_DONTWAIT) in a loop
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You can use the setsockopt function to set a timeout on receive operations:
Reportedly on Windows this should be done before calling
bind. I have verified by experiment that it can be done either before or afterbindon Linux and OS X.