[python] vytvoření serveru

Jakub Vojáček Jakohv na seznam.cz
Úterý Srpen 15 10:03:08 CEST 2006


Ahoj
mám takový problém se serverem. Dělám na on-line multiplayer hře. Každý si stáhne klienta a když bude puštěný server připojí se. Například když se někdo připojí tak to všem ostatním hráčům odešle přikaz:self.platno.create_image(x,y,image=obr)
jak ale udělat funkci, která byčekala až na server přijde nějaká zpráva a pak by jí stáhla? 
server:
import socket
def zapni_server():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host =  'localhost'
    port = 1001
    s.bind((host, port))
    s.listen(1)
    print "on-line"
    while 1:
    
        conn, addr = s.accept()

    
        data = conn.recv(100000)
           
        print data
        conn.send(data)
        conn.close()

    s.close()
zapni_server()

###################
klient ma dve funkce:
def posli_rozkaz(self,co):       
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        host = "localhost"
        port = 1001
        s.connect((host, port))
        s.send(co)
        s.close()
def prijem_rozkazu(self):

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        host = "localhost"
        port = 1001
            
        s.connect((host, port))
        s.setblocking(0)
        try:
                data= s.recv(1000000)
                exec(data)
                
        except:
                pass
        s.close()


Prostě jakmile by jakýkoliv klient odeslal příkaz, hned by se u všech ostatních klientů zavolal funkce prijem_rozkazu()
Blujacker


Další informace o konferenci Python