[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