[so] Intrebari Tema 5 async i/o Windows
Adrian Lascateu
adrian_lascateu at yahoo.com
Fri Aug 7 19:05:18 EEST 2009
Salut!
Am si eu nevoie de putin ajutor intrucat am intalnit cateva probleme. O sa incerc sa le iau pe rand.
1) Daca testez cu generatorul de pe site atunci incepe sa piuie daca afisez iar daca nu afisez, tot se duce in balarii. Daca pun un generator de caractere (buffer[i] = rand()%63+48 sa zicem) atunci marea majoritate trec.
2) La testele de WRITE am observat ca mesajul meu de 1MB de la client vine in mai multe bucati de 512 la server (bytes transf 512 dar strlen arata 513!) asa ca la fiecare pun un '\0' pe ultima poz (512). Problema mare este ca am dat peste un printf fantoma:
//printf("Spotted message |%s| from %d %d %d tip %d\n", oc->DataBuf.buf,oc->socket,bytes,index,oc->tip);
oc->DataBuf.buf[bytes] = '\0';
Daca il pun, atunci bucatile se pun cap la cap cum trebuie. Daca nu-l pun atunci mai pune inca un caracter (totalul la 64KB ajunge 65537, ca si cum ar ignora '\0') si totul se strica.
3) Si bineinteles eterna "da' pa' windows de ce merge?" Tot ce am testat pe windows (cmd simplu, nu cygwin) merge in toate combinatiile posibile. In cygwin, cateodata unele teste merg, altadata nu merg (in special 22,23...).
Orice idei sunt binevenite ca eu nu mai stiu ce sa fac :D
Multumesc mult,
Adrian
More information about the so
mailing list