[so] [tema5 lin]
Andreea Hodea
hodea_andreea at yahoo.com
Tue May 22 22:44:14 EEST 2012
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 <razvan.crainea at gmail.com> 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
More information about the so
mailing list