Toon posts:

connect socket

Pagina: 1
Acties:
  • 29 views sinds 30-01-2008

Verwijderd

Topicstarter
Een server, geschreven in c, wacht op een client.

Hij wacht door middel van het volgende commando

/* wait for client request */
if((client = accept(server,(struct sockaddr*)NULL, 0))<0)
{
//client is binnen
...
}

Leuk, maar de server blijft wachten totdat er een client zich aanmeld. Nu wil ik hier graag een maximum tijd aan meegeven. Hoe doe ik dit?

  • Predator
  • Registratie: Januari 2001
  • Laatst online: 14:44

Predator

Suffers from split brain

Ben je van plan meerdere clients tegelijk te kunnen bedienen ?

Zoja wat voor een mechanisme gebruik je daarvoor ?

Moet die server gewoon afsluiten na die timeout :?

Everybody lies | BFD rocks ! | PC-specs


  • mvdejong
  • Registratie: Juni 2000
  • Laatst online: 29-11-2024

mvdejong

When does the hurting stop ?

Dat doe je niet met de accept.

Je maakt de socket met socket(3N), en doet er dan een select(3C) op, en daar zit een timeout-parameter. Als de select aangeeft dat er een connectie binnenkomt op de socket, doe je een accept(3N), anders niet.

Ik ga hier even van een UNIX-omgeving uit, dit zal onder windows-achtige OS-en wel weer anders gaan.

The number of things that Arthur couldn't believe he was seeing was fairly large


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 14:44

Predator

Suffers from split brain

Op vrijdag 12 april 2002 13:40 schreef mvdejong het volgende:
Dat doe je niet met de accept.

Je maakt de socket met socket(3N), en doet er dan een select(3C) op, en daar zit een timeout-parameter. Als de select aangeeft dat er een connectie binnenkomt op de socket, doe je een accept(3N), anders niet.

Ik ga hier even van een UNIX-omgeving uit, dit zal onder windows-achtige OS-en wel weer anders gaan.
Als er maar 1 client tegelijk moet connecten kan je dat wel zo doen.
Als het maar een heel erg beperkt aantal is kan je fork gebruiken.
Voor serieuzere dingen moet je indd wel met die select gaan werken of threads gebruiken.

Hangt er beetje vanaf wat ie ermee wil doen.
Ik snap niet goed waarom ie met een timeout wil werken.

Everybody lies | BFD rocks ! | PC-specs


  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 12:42

Koffie

Koffiebierbrouwer

Braaimeneer

Move PW

Braaikamer - Smoke&BBQ


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[topic=466122]

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.