Article View: be.comp.programming
Article #4742Re: Socket probleem in c++
From: Roel Schroeven
Date: Thu, 10 Jul 2003 07:02
Date: Thu, 10 Jul 2003 07:02
53 lines
3787 bytes
3787 bytes
Harbinger of Doom wrote: > > "Robrecht Jacques" <Robrecht.Jacques@advalvas.be> schreef in bericht > news:3f0c0d16$0$295$ba620e4c@reader0.news.skynet.be... >> Harbinger of Doom wrote: >> > "Nicolas Barbier" <anti@spam.invalid> schreef in bericht >> > news:3f0bf791$0$6527$afc38c87@sisyphus.news.be.easynet.net... >> >> Harbinger of Doom wrote: >> >>> Het betreft een TCP socket, en deze breekt >> >>> inderdaad af met een foutmelding als de server na enige tijd niet >> >>> geantwoord heeft. >> >>> Het probleem is echter, dat ik daar heel lang op moet wachten (soms >> >>> tot 30sec) >> >>> Ik weet heel zeker dat, als de server na een paar seconden niet >> >>> geantwoord heeft, dat deze niet aan het luisteren is. >> ... >> > Er kunnen van die valse IP-adressen inzitten, want ik probeer te >> > connecteren naar >> > een lijst van 200 IP's die uit het register gelezen worden. >> > Deze IP's worden daar opgeslagen bij vorige sessies van het programma. >> > Het kan dus best zijn dat ��n of meerdere van die 200 ondertussen hun >> > pc afgelegd hebben, >> > en bijgevolg dus ook geen connection refused-antwoord kunnen geven. >> >> Is die 30s niet de tijd dat een socket in TCP_WAIT toestand zit? Misschien >> kan je je programma threaden zodat je verder kan met de IPs die hebben >> geantwoord en in een aparte thread wachten op de andere. >> >> Robrecht >> > > Ik heb in andere groepen dezelfde raad gekregen. > Ik zou dus kunnen: > ofwel: > voor iedere IP een apparte thread maken, zodat deze > tegelijk kunnen afgehandeld worden. > ofwel: > twee threads maken. Ik heb me nl. laten vertellen dat, > als ik in de ene thread connect() aanroep, en dan na > bvb 5sec. vanuit de tweede thread een closesocket() aanroep, > connect() ogenblikkelijk zou moeten returnen met een bepaalde error. Je kan ook non-blocking IO gebruiken op sockets. Uit 'man 7 socket': "It is possible to do non-blocking IO on sockets by setting the O_NONBLOCK flag on a socket file descriptor using fcntl(2). Then all operations that would block will (usually) return with EAGAIN (operation should be retried later); connect(2) will return EINPROGRESS error. The user can then wait for various events via poll(2) or select(2)." (en dan volgt er een lijstje van I/O events). -- "Codito ergo sum" Roel Schroeven
Technical Details
Message-ID:
<1c8Pa.13606$7h.14238@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-09!supernews.com!news.maxwell.syr.edu!transit.news.xs4all.nl!newsfeed.wxs.nl!aotearoa.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<XQEOa.7874$W94.1297123504@hestia.telenet-ops.be> <3f0bdb8d$0$6526$afc38c87@sisyphus.news.be.easynet.net> <knSOa.8810$V24.1491035148@hestia.telenet-ops.be> <3f0bf791$0$6527$afc38c87@sisyphus.news.be.easynet.net> <CVSOa.8861$zX4.1494718603@hestia.telenet-ops.be> <3f0c0d16$0$295$ba620e4c@reader0.news.skynet.be> <P91Pa.9707$0h2.1681258747@hestia.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,63379b935ce3281f X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-07-10 00:02:23 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-09!supernews.com!news.maxwell.syr.edu!transit.news.xs4all.nl!newsfeed.wxs.nl!aotearoa.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail Newsgroups: be.comp.programming From: Roel Schroeven <j4nff5m02@sneakemail.com> Subject: Re: Socket probleem in c++ References: <XQEOa.7874$W94.1297123504@hestia.telenet-ops.be> <3f0bdb8d$0$6526$afc38c87@sisyphus.news.be.easynet.net> <knSOa.8810$V24.1491035148@hestia.telenet-ops.be> <3f0bf791$0$6527$afc38c87@sisyphus.news.be.easynet.net> <CVSOa.8861$zX4.1494718603@hestia.telenet-ops.be> <3f0c0d16$0$295$ba620e4c@reader0.news.skynet.be> <P91Pa.9707$0h2.1681258747@hestia.telenet-ops.be> Organization: http://www.catb.org/~esr/faqs/smart-questions.html Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit User-Agent: slrn/0.9.7.4 (Linux) Lines: 53 Message-ID: <1c8Pa.13606$7h.14238@afrodite.telenet-ops.be> Date: Thu, 10 Jul 2003 07:02:21 GMT NNTP-Posting-Host: 81.164.36.61 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1057820541 81.164.36.61 (Thu, 10 Jul 2003 09:02:21 MET DST) NNTP-Posting-Date: Thu, 10 Jul 2003 09:02:21 MET DST