[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