Salve, Multumesc pentru raspuns, m-a ajutat.
Acum nu reusesc sa dau de cap transmiterii fisierelor din dynamic. Pasii ar fi: - primesc pe sockfd EPOLLIN - adaug eventfd al conexiunii curente in pollul de in - primesc EPOLLIN pentru eventfd si apelez update_ptr_out pentru socket - cand primesc EPOLLOUT, scriu pe socket ce am citit asincron prin eventfd - daca mai am de citit din fisier, apelez update_ptr_in pentru eventfd - s.a.m.d. Sper ca am inteles bine. Acum ma deruteaza doua fraze din tema: "Tot folosind epoll se va aștepta notificarea încheierii operațiilor asincrone pe fișiere.", respectiv "Pentru încheierea operațiilor asincrone, folosiți io_getevents." Daca astept EPOLLIN prin epoll_wait si apoi apelez io_getevents, se blocheaza in io_getevents. Asadar, unde am nevoie de io_getevents? Multumesc, Andreea --- On Sat, 5/19/12, Razvan Crainea <[email protected]> wrote: > > Bună, Andreea! > > Dimensiunea fișierului nu trebuie specificată decât o > dată, în > headerul "Content-Length" trimis odată cu restul antetului > HTTP. Apoi > se trimit datele, pe același socket, chunk după chunk > până ce tot > fișierul a fost trimis. > Prin urmare, secvența de operații ar fi: > send("HTTP/1.1 200 OK\r\nContent-Length: $size\r\n\r\n") + > sendfile(chunk) > > -- > Răzvan Crainea _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
