🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #13919

Re: c++ socket timeout

#13919
From: Luc Kumps
Date: Mon, 14 May 2001 18:11
41 lines
2538 bytes
"TdC" <no#tdc@lomag.net#spam> wrote in message
news:fxSL6.78844$ii.10143800@afrodite.telenet-ops.be...
>
> "Luc Kumps" <NOkumpsSPAM@pandora.be> wrote in message
> news:LuBL6.77923$ii.9958430@afrodite.telenet-ops.be...
> > SO_RCVTIMEO slaat alleen op RECEIVE.
> > SO_SNDTIMEO slaat alleen op SEND.
> >
> > Op connect kun je op deze manier geen timeout zetten.
> > Je zult moeten terugvallen op asynchrone (of non blocking) sockets, en
> > select of WaitForMultipleObjects gebruiken.
> >
> > Luc
> >
>
> lukt dit ook op unix?
> ik dacht dat asynchrone enkel winsock was

Natuurlijk lukt dat op Unix. Nadien hebben ze een poging gedaan om het op
Window ook een beetje te laten werken, en dat is min of meer gelukt...
zolang je niet TE veel  sockets wenst te beheren vanuit 1 enkel proces
natuurlijk;-)

Hier moet je mee beginnen (na het aanmaken van de socket, en het oproepen
van bind()):

int yes;
yes = 1;
ioctl(fd, FIONBIO, &yes);

waarbij fd de socket descriptor is zet de socket in "non blocking" mode.
connect() zal dan onmiddellijk -1 teruggeven, errno=EINPROGRESS (andere
errors moet je opvangen)

Je gebruikt dan select() om te weten wanneer de connect() complete is
(gelukt of mislukt).  Wanneer de connect() lukt wordt de file descriptor
writeable als ik het me goed herinner. Ik meen dat het allemaal uitgelegd
staat in de man pages van socket.

Luc
Technical Details
Message-ID: <GdVL6.79353$ii.10238356@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.sj.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!wanadoo.fr!opentransit.net!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail
References: <evAL6.77789$ii.9923304@afrodite.telenet-ops.be> <LuBL6.77923$ii.9958430@afrodite.telenet-ops.be> <fxSL6.78844$ii.10143800@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,7a0e4be47c886294
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-05-14 11:11:52 PST
Path: arc1-ca.pugleaf.net!archiver1.sj.google.com!newsfeed.google.com!sn-xit-02!supernews.com!isdnet!wanadoo.fr!opentransit.net!newsfeeds.belnet.be!news.belnet.be!afrodite.telenet-ops.be!not-for-mail
From: "Luc Kumps" <NOkumpsSPAM@pandora.be>
Newsgroups: be.comp.programming
References: <evAL6.77789$ii.9923304@afrodite.telenet-ops.be> <LuBL6.77923$ii.9958430@afrodite.telenet-ops.be> <fxSL6.78844$ii.10143800@afrodite.telenet-ops.be>
Subject: Re: c++ socket timeout
Lines: 44
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Message-ID: <GdVL6.79353$ii.10238356@afrodite.telenet-ops.be>
Date: Mon, 14 May 2001 18:11:50 GMT
NNTP-Posting-Host: 213.118.64.191
X-Complaints-To: abuse@pandora.be
X-Trace: afrodite.telenet-ops.be 989863910 213.118.64.191 (Mon, 14 May 2001 20:11:50 MET DST)
NNTP-Posting-Date: Mon, 14 May 2001 20:11:50 MET DST
Organization: Telenet Internet