Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: posix socket onkelma

SempRO [26.10.2006 22:20:17]

#

Elikkä kun yritän konnuttaa serverille telnetin avulla (o 127.0.0.1 7000), heittää vaan segmentation faulttia ruudulle. (ohjelma kääntyy ongelmitta)
Olen vasta aloittelija sockettien kanssa joten itse on osaa tuota korjata.

Kiitos avusta ^^

http://koti.mbnet.fi/harbin/public/files/ongelma.zip

A-P [27.10.2006 12:58:57]

#

Käytät koodissasi varaamattomia muistiosoittimia. Nämä ainakin ovat ohjelman lähteitä.

Esittelet rakenteen:

struct session_data

{

  int type;	// session type. 0:server 1:player

  int status;	// session status. 0:connected  1:disconnect

  char *rbuffer, *wbuffer;

  int rbuffer_size, wbuffer_size;

} *session[DEFINE_MAXSOCK];

Ja käytät sitä varaamatta muistia sille:

len = read(tmp, session[tmp]->rbuffer, session[tmp]->rbuffer_size);
session[tmp]->rbuffer_size = len;

SempRO [27.10.2006 14:48:59]

#

Siitä siis se segmentation fault :D Kiitos avustasi.
Ilmoittelen jos tulee viellä errorira.

_Pete_ [03.11.2006 09:48:58]

#

http://goblin.tkk.fi/c/tutorials/gdb.html

Kannattaa opetella käyttämään tuota tai jotain muuta debugeria. Ei tarvi arvailla mistä segfaultit tulee vaan näkee suoraan rivinumeron missä vika on...

Vastaus

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

Tietoa sivustosta