[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