[Tutor PyCZ] vytvoření serveru

Pavel Kosina geon na post.cz
Úterý Srpen 15 17:44:05 CEST 2006


Jakub Vojáček napsal(a):
> Zatím jsem přišl na tohle:
> from Tkinter import*
> import socket
> okno=Tk()
>
>
> text=Text()
> text.pack()
> def prijmi():
>     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>     host = "localhost"
>     port = 1000
>     s.connect((host, port))
>     s.setblocking(0)
>     try:
>         print s.recv(102)
>         text.insert(END,data)
>     except:
>         pass
>
>     
>     s.close()
> prijmi()
> mainloop()
>
> metoda s.setblocking(0) dela non-blocking server jak jsi říkal a proto když pak zavolám recv() tak mi to vrátí chybu a už se to nesekne jako předtím. Teď jeětě dodělat tamtu drobnost s tím automatickým přijímáním...        
>
>   
automatickým přijímáním určitě myslíš to, aby prostě čas od času se sama 
spustila funkce prijmi() a ostatní části programu fungovali normálně 
dále. Tak to se dá dělat jednak před oblíbené thready (modul thread a 
threading), tutoriály jistě vygoogluješ sám, možná i něco v češtině, 
Anebo v Tkinter metodou xxx.after(), kterou jistě znáš: 
http://tkintercz.wz.cz/widget.htm#Tkinter.Widget.after-method. Ale bude 
lepší nevolat opakovaně celou funkci prijmi , ale udělat funkci ze 
samotného činného kodu v té funkci (try:) . Samozřeujmě socket nezavírat....


-- 
geon
Pavel Kosina



P.S. Pls až budeš odpovídat, smaž nepodstatné části tohoto mailu, at se 
v tom dá lépe vyznat.


Další informace o konferenci Tutor