noo diky :) ako tak tomu chapem :) v podstate asynchat.loop() kazdych x sekund kontroluje, ci dosli nejake data a ci moze nejake data poslat. spravne? este by ma zaujimalo, ze kolko je defaultne tych x sekund ;)
noo a s nadobudnutymi dalsimi vedomostami sa pytam dalsie veci ;) 1) neda mi nedokoncit toho asynchronneho telnet klienta(= bezny telnet) a spravil som nieco take: --------------- # atlantis client = v podstate telnet klient import asyncore, socket class atlantis_client(asyncore.dispatcher): def __init__(self, host="atlantis.talker.sk", port = 23): asyncore.dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect( (host, port) ) self.host = host #self.fill_buffer() #z nejakych pricin nefunguje :( self.buffer = "nejaky napisany text\r\n" def fill_buffer(self): #stale, len co budem zadavt prikaz,ono mi ho odosle na server *** aspon by malo self.buffer = raw_input("zadaj prikaz: ") self.bufer += "\r\n" def handle_connect(self): print "Uspesne som sa pripojil k ",self.host ,"!" def handle_close(self): self.close() def handle_read(self): #cita prijate data print self.recv(8192) def writable(self): return (len(self.buffer) > 0) # buffer nieje prazdny - mozem odoslat def handle_write(self): # odosle data z bufferu sent = self.send(self.buffer) self.buffer = self.buffer[sent:] c = atlantis_client() asyncore.loop() --------------- problem je vsak v podstate rovnaky, ako predtym... resp. neviem, KDE mam vlozit do tohoto riadok na neustale nacitavanie user vstupu :( (momentalne som to strcil do konstruktoru[self.buffer = "nejaky napisany text\r\n"] cize sa vykona len raz:-( ) poradi niekto? a podledna tretia otazka je, ze ci by som tu mohol pouzivat funkciu found_terminator(samozrejme keby som to cele prerobil na asynchat) na hladanie "\n", cize kde user ukonci zadavanie vstupu a odosle to cele, alebo sa to da pouzivat, len na strane servra, ked prijimam vstup a tam hladam ohranicenie? dikyy :) 2007/11/21, Filip Štědrosnký <[EMAIL PROTECTED]>: > Zdravím > No vlastně asyncore.loop je hlavní smyčkou komunikace, tedy > obsluhuje události a příslušně na ně reaguje. Má určitý seznam > objektů, se kterými pracuje (ten jí je buď předán, nebo využívá > výchozí seznam VŠECH existujících instancí asyncore.dispatcher > a podobných tříd, což vysvětluje to "magické předání" objektu). > Konkrétně pak v této hlavní smyčce probíhá volání select(), které > zjišťuje, zda jsou na některém ze síťových kanálů data k načtení > a pokud ano, volá příšlušný objekt. Zrovnatak pokud jsou v > cache pro odeslání některého z objektů data, jsou vyslána do sítě. > Vzal jsem to stručně, ale snad jsem vystihl základní princip... > > > On St, lis 21, 2007 at 07:00:23 +0100, Tomy novella wrote: > > ahoj, > > este by ma zaujimalo, ze co robi asyncore.loop(), > > pretoze je to zjavne funkcia modulu a nie metoda vztahujuca sa k > > instancii triedy(myslim triedu asyncore.dispatcher)? cital som manual, > > ale som nepochopil... kazdych 30 sekund (default) sa snazi *co* > > urobit? a co robi, ked sa k nicomu nevztahuje? diky :) > > _______________________________________________ > Python mailing list > Python@py.cz > http://www.py.cz/mailman/listinfo/python > -- PS: prosim v mailoch tykat! nie vykat ;) [EMAIL PROTECTED] [EMAIL PROTECTED] _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python