[Tutor PyCZ] vytvoření serveru
Jakub Vojáček
Jakohv na seznam.cz
Úterý Srpen 15 09:47:29 CEST 2006
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...
> ------------ Původní zpráva ------------
> Od: Pavel Kosina <geon na post.cz>
> Předmět: Re: [Tutor PyCZ] vytvoření serveru
> Datum: 15.8.2006 08:52:10
> ----------------------------------------
> Jakub Vojáček napsal(a):
> > Já vím, ale těch posluchačů bude tolik jako klientů
> >
> jeden server a 10 posluchačů. Když jeden něco napíše, pošle to na server
> a ten to rozešle všem. Tak to asi je, že jo?
>
> Ty to ted máš, že se pokaždé vytvoří nové spojení. Tak to ale fungovat
> ne,ůže, protože clineti musí na server napojeni furt. Tedy přichází do
> úvahu dvě řešení (ani jedno jsem nezkoušel, budeš muset hodně laborovat
> nebo ti někdo zkušenější poradí - mě by to taky zajímalo):
>
> 1/ pro každého klienta udělat speciální PORT a ten udržovat v chodu
> (tedy žádné xxx.close() ). A mít je nějak v seznamu a když jeden něco
> pošlě, tak server všem ze seznamu odešle co dostal
>
> 2/ Snad je možné :
> http://heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf udělat
> Non-blocking socket, což znamená, že by ti na jeden PORT se přihlásilo
> jich víc klientů (ti ostaní by již nepsaly, že to nejde, že je to
> obsazené). No a když by jeden něco poslat, tak by to server poslal zpět
> a dostaly by to všichni.
>
> Zkus si projít zmíněné funkce v dokumentaci Python. Nejlepší přehled
> tutoriálů o síťovém programování jsem našel tady:
> http://www.awaretek.com/tutorials.html#int .
>
>
>
> --
> geon
> Pavel Kosina
>
> _______________________________________________
> Tutor mailing list
> Tutor na py.cz
> http://www.py.cz/mailman/listinfo/tutor
>
>
>
Blujacker
Další informace o konferenci Tutor