dlhy timeout
Petr Snajdr
snajdr na firma.seznam.cz
Středa Červen 16 12:19:33 CEST 1999
On Tue, 15 Jun 1999, Pavel Kankovsky wrote:
> > Ale pozriem aj na ten select(2).
>
> non-blocking connect je docela vesela zalezitost
> priklad pouziti lze nalezt v novejsich verzich Tiny Fugue
> ja bych se tomu rozhodne vybybal, sec bych mohl :)
V nekterych pripadech se ale hodi. Prikladem budiz
boa - WWW server, ktery bezi jen jako 1 proces bez
forkovani a bez threadu a pritom obsluhuje urcite
vice nez jednoho klineta :). No ale to uz je neco trochu jineho.
Jinak zase tak hrozne to neni :-)
Jelikoz jsem nejak nevedel o sigaction :), tak
jsem si ty timeouty udelal jinak.
Potreboval jsem to v jazyce Python a v nekterych
jeho knihovnach - HTTP, FTP,.... Prepisovat je uplne znova
se mi je nechtelo a tak jsem si napsal knihovnu, ktera emulovala
cast knihovny socket, kterou ostatni moduly pouzivaji. Co neemulovala
to "presmerovavala" na puvodni socket. Ta cast byla udelana
jako neblokujici s tim, ze na venek pro programy ji
vyuzivajici to bylo transparentni (jinak by nefungovaly).
No a postup pouziti byl:
- natahnu knihovnu HTTP (napr)
- natahnu mou_knihovnu (my_socket)
- donutim HTTP knihovnu, aby si myslela ze
knihovna socket je my_socket :)
Takze nakonec se to tvari porad stejne :). Prijde mi, ze
i tak mam o neco lepsi kontrolu nad tim co s tim socketem stalo
nebo kde se to az prerusilo.
BTW: Taky nevim zdali mi nektera
z tech knihoven nastaveny alarm neprepise.
--
S pozdravem
Petr Snajdr
Seznam Ceskeho Internetu: http://www.seznam.cz/
Magazin pro kazdeho: http://www.novinky.cz/
Seznam Dnes: http://dnes.seznam.cz/
Navody, recenze, technika:
http://www.novinky.cz/Index/TechDesk/
Další informace o konferenci Linux