Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


help reg sockets

This topic is 5898 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

i am implementing an application which transmits udp packets back and forth. now, i want to give a timeout on the receiver side when he is trying to receive upd packets. for example, the server goes down, the receiver has no way to know if the server has gone down or not, so it''ll be waiting forever on ''recvfrom'' command. how do i give a timeout to ''recvfrom''? i heard you should use something called ''select'' and ''poll''.. how do i use that? thanks in advance Slow and steady wins the race.

Share this post

Link to post
Share on other sites
The select function allows you to check if there is any data waiting for a given socket.

int select(
int nfds,
fd_set FAR *readfds,
fd_set FAR *writefds,
fd_set FAR *exceptfds,
const struct timeval FAR *timeout

Im looking at the documentation for the windows version of sockets (which is mostly compatible with berkley sockets in *nix, which I geuss you're running) so I'm unsure of the first parameter of select. I you set it to NULL I think it should work

The next three parameters are lists of sockets. Declare your fd_set for each and use,
FD_SET(socket s, fd_set * set);
to add your sockets to the set.

struct timeval {
long tv_sec;
long tv_usec;

Use timeval for the timeout, or pass NULL for a blocking operation.

The call to select will return the number of sockets ready. And I *think* from there you can use,
FD_ISSET(socket s, fd_set * set);
to check if the socket is ready.

I hope this is helpful, if you need anything clarified then post again ...

[edited by - eNGIMa on May 1, 2002 8:21:04 PM]

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!