Article View: be.comp.programming
Article #4753Re: Socket probleem in c++
From: Oelewapperke
Date: Thu, 10 Jul 2003 17:41
Date: Thu, 10 Jul 2003 17:41
45 lines
3229 bytes
3229 bytes
Harbinger of Doom wrote: > Hello, > > Ik werk voor het ogenblik aan een C++ project dat > data over een netwerk moet verzenden en ontvangen. > Daarvoor gebruik ik het SOCKET datatype. > Alles werkt perfect, op ��n ding na: > Als ik probeer te verbinden met een server die niet > aan het luisteren is, dan blijft de connect() functie hangen. > > Ik ben aan het zoeken naar iets dat me toelaat om > een time-out in te stellen voor de verbinding, maar ik niet echt iets. > Is er een manier om een connectie time-out in te stellen? en zo ja, hoe? > MS Visual C++ 6.0 is mijn compiler. > dank bij voorbaat Asynchrone sockets en select() (of poll() ) dienen hiervoor. Je kan dat altijd zelf doen (een socket lib schrijven heb ik al een keer of 4 gedaan, dat is niet moeilijk, eentje met asynchrone support is serieus moeilijker maar de tweede of derde keer zou je ze toch al functioneel moeten kunnen krijgen). Als je een "goeie" GUI app wilt (dus een die nooit blokkeert) ga je je heel programma rond die socket lib moeten draaien (gelijk bv QT dat doet, of eefje (op savannah), en gelijk het de bedoeling is dat je in windows programmeert). Dan moet je in je programma alles asynchroon doen (je kan daarin heel ver gaan, zoals bv de icoontjes van menu-entries pas inlezen als ze nodig zijn, of grote delen van je applicatie niet inladen als het programma start). Basically maak je 1 centrale routine die events verzamelt en dispateched (via boost, libsigc++, of een eigen versie (heb ik in een oude versie van eefje geprobeerd, maar dit is extreem tricky), en je heel programma bestaat uit (liefst kleine) stukjes code die dan aangeroepen worden door die centrale routine, heel ff iets doen, en terug retourneren naar die centrale routine. ACE (adaptive communications environment) is de uitgebreidste (en meest functionele lib die ik al gevonden heb die dit kan doen. De handleiding ervan is echter zo'n 2000 pagina's. En ACE dwingt u van op een bepaalde (goede) manier te programmeren, dat kan een serieus probleem zijn ;-p. ACE is gratis btw. Oelewapperke
Technical Details
Message-ID:
<ZyhPa.14367$7h.14317@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!colt.net!kibo.news.demon.net!demon!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>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 10:41:15 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!colt.net!kibo.news.demon.net!demon!aotearoa.belnet.be!news.belnet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: Oelewapperke <Oelewapperke@wol.be> Subject: Re: Socket probleem in c++ Newsgroups: be.comp.programming References: <XQEOa.7874$W94.1297123504@hestia.telenet-ops.be> Lines: 45 User-Agent: KNode/0.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <ZyhPa.14367$7h.14317@afrodite.telenet-ops.be> Date: Thu, 10 Jul 2003 17:41:13 GMT NNTP-Posting-Host: 213.118.140.75 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1057858873 213.118.140.75 (Thu, 10 Jul 2003 19:41:13 MET DST) NNTP-Posting-Date: Thu, 10 Jul 2003 19:41:13 MET DST Organization: Telenet Internet