2015-05-26 15:45 GMT+03:00 Constantin Neagu via so <[email protected]>: > Totusi am reusit sa descopar ce nu mergea: > - recv pe socket citeste numai 20 de bytes => nu citeam toata calea > fisierului. > Am observat ca datele sunt totusi acolo, un al doilea recv imediat > dupa primul citeste si restul. > Problema rezolvata prin folosirea read in loc de recv. > Avand in vedere ca socket-ul este setat ca non-blocant, respect cerinta > temei. > Am incercat sa imi dau seama de unde vine limitarea, > dar bufferele de recv si snd ale socket-ului sunt in regula, iar in > alta parte nu stiu unde sa ma uit. > - sendfile si send scriu pe buffer doar jumatate din dimensiunea specificata.
Daca singura problema e ca trebuie sa folosesti recv/send de mai multe ori, nu vad problema :D. Oricum, socketii fiind non-blocanti, trebuie sa te astepti sa citesti mai putin decat BUFSIZ, de exemplu (Din cate stiu, un recv pe socket non blocant iti intoarce toate datele din buffer la momentul apelului, care e posibil sa fie si gol). _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
