Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Socketit ja serveri

kayttaja-3842 [01.10.2009 10:02:09]

#

Tervehdys kaikille,

Tuli tässsä pieni kysymys socketeista. Eli olen tekemässä monta sockettia tukevaa serveri softaa, mutta tuli nytten yksi pieni kysymys tähän väliin. Eli toteutan clienttien sockettien käsittelyn select()-funktiolla.

...mutta sitten itse ongelmaan. Eli voiko/pitääkö palvelimelle luoda oma socketti kuuntelua varten? Eli siis kun laitan vaikka servun kuuntelemaan sockettia "serverin_socketti", niin sitten kun joku yhdistää niin voinko acceptilla ohjata clientin yhteyden esim. "asiakas1_sockettiin", vai pitääkö yhteys acceptaa "serverin_sockettii" ja tämän jälkee avata servu kuuntelemaan jotain toista sockettia?

Deffi [01.10.2009 11:13:46]

#

Eikös siinä käy väkisin noin. Ensiks luot socketin joka kuuntelee niitä yhteyksiä, ja sitten ne yhteydet hyväksytään accept():lla joka palauttaa uuden "asiakassocketin". Se vanha kuunteleva socket ei häviä minnekään, ei kannata ylikirjoittaa sitä.

kayttaja-3842 [01.10.2009 12:18:29]

#

eli siis toiminta tapa olisi seuraava

listen(socketti[0])

//...soketti[0] yhdistettiin
socketti[0] = accept( socketti[0] ...)

//.. kun socketti[0] on joku yhdistäny siirrytään kuuntelemaan socketti[1]

listen(socketti[1])

Metabolix [01.10.2009 12:29:18]

#

Ei, vaan kuten Deffi sanoi:

listen(palvelin);
asiakas[0] = accept(palvelin);
asiakas[1] = accept(palvelin);
asiakas[2] = accept(palvelin);

kayttaja-3842 [01.10.2009 12:43:13]

#

Juuri tuota tarkoitinkin, että tehdäänkö se noin! Kiitos paljon teille. :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta