neblokujici zapis do socketu

Ladislav Vaiz spam na nagano.cz
Středa Únor 16 14:22:49 CET 2005


> Docela by se mi hodil neblokujici zapis, ale nevim, jak presne se to chova.
> Jakekoli zkusenosti (at dobre ci spatne) jsou vice nez vitany.

Melo by se to chovat tak, ze nekolik write() pujde do bufferu jadra. Kdyz
jadro uzna, ze mu to staci, tak vrati EAGAIN. Vy si musite nekde
zapamatovat, kolik dat jste uz zapsal.
Pak cekejte select(n,NULL,&wfd,NULL,tv) dokud nemuzete opet zapisovat a
pokracujte v zapisu.

Pokud write vrati jinou chybu, prestoze byla udalost na wfd, tak asi
doslo k preruseni spojeni. (Neodzkouseno, read se takto chova, tak si
myslim, ze u write to bude stejne).

Shrnuto: nejvetsi problem je ona vrstva nad write().Pokud neposilate
soubor 1:1, tak asi budete muset napsat nejakou cache. Obtiznost
implementace musite zvazit sam, nenapsal jste, o co jde.

La'd"a


Další informace o konferenci Linux