Also erstmal ich heisse Sn4ke und bin neu in diesem Forum...
Folgendes Problem:
Ich bin allgemein ein Python Anfänger...
Ich hab nachdem ich paar Projekte mit Python (+Pygame) gemacht habe, angefangen
mich mit Sockets zu beschäftigen. Meine Idee war es einen kleinen Chat zu schreiben.
Allerdings sollen sich dort mehrere Clients drauf verbinden können + alle können etwas schreiben.
Jetzt ist mein Problem die Funktion recieve(), diese würde eigentlich funktionieren wenn dieses
data = clientsockets.recv(1024).decode("ascii") nicht solange warten würde bis es Daten bekommt.
Also: Wie kann ich das verhindern?
Wichtig: Ja, es stimmt das die data nur ausgegeben wird. Das ist auch nur zu Testzwecken dort,
später werde ich diese an die einzelnen Clients versenden.
Hier ist der Code vom Server:
Code: Alles auswählen
import socket,threading
print ("Starting Chat Sever...")
serverport = input("Give me a Port: ")
welcometext = "Welcome to the Sn4ke's Chat Server!"
global clientsockets 
clientsockets= []
def recieve():  
   while True:
     if len(clientsockets) != 0:
      for i in range(0,len(clientsockets)):  
       data = clientsockets[i].recv(1024).decode("ascii")
       if not data: break
       print(data) 
       
def newconnect():
 while True:
   clientsocket,addr = serversocket.accept()
   print("IP: " + "["+addr[0]+"] "  + " connected successfully!")
   clientsocket.send(bytes(welcometext ,"ascii"))
   clientsockets.append(clientsocket)
  
try:
 serverport = int(serverport)
 global serversocket
 serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 serversocket.bind((socket.gethostname(),serverport))
 serversocket.listen(5)
 thread1 = threading.Thread(target=newconnect)
 thread2 = threading.Thread(target=recieve)
 thread1.start()
 thread2.start()
 print ("Server ist nun Online!")
 
except:
 print("Error")
Den Code vom Client brauche ich hier nicht zu posten, der funktioniert tadellos.
Ps: Wenn ihr den Thread nicht versteht, bitte sagen bin bissel minimalistisch im Moment
Danke an alle Antworten
Mit freundlichen Grüssen
Sn4ke
