socket doet rare dingen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • williewonka03
  • Registratie: Augustus 2010
  • Laatst online: 16-06-2024
hallo allemaal
ik probeer momenteel een chat programma te maken in python. cruciaal onderdeel is natuurlijk dat de server een bericht dat het ontvangt van een client. daar heb ik de volgende code voor.
bij het connecten met de server (na succesvolle authenticatie)
Python:
1
2
        user = [NAME, self.server.socket] #NAME is de naam van de client die deze thread afhandelt
        users.append(user)

users is dus een lijstje met verbonden users
vervolgens komt er een bericht binnen en moet die naar alle users verstuurd worden, dit stukje probeert dat:
Python:
1
2
3
4
                for u in users:
                    if u[0] != NAME:
                        socket = u[1]
                        socket.request.sendall(bytes(self.data, "utf-8"))

het probleem is alleen dat de client die het originele bericht verstuurt heeft vervolgens accuut dropt en dan een oneindige rij aan lege lijnen print als ontvangen bericht.
het gekke is dat als op de server dit for loopje weg haal dit niet voorkomt maar ik heb met debuggen vastgesteld (dmv breakpoints) dat de loop wel gewoon de juiste user selecteer. maar die user ontvangt niks.
ik vermoed dat ik dus niet direct die socket in die thread kan aanroepen maar het terugzenden van de verificatie (op dit moment alleen nog een "OK" ;) ) werkt wel gewoon. kan iemand mij hier mee helpen?