chatserver.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from socket import socket
  2. from threading import Thread
  3. def main():
  4. class ClientHandler(Thread):
  5. def __init__(self, client):
  6. super().__init__()
  7. self._client = client
  8. def run(self):
  9. try:
  10. while True:
  11. try:
  12. data = self._client.recv(1024)
  13. if data.decode('utf-8') == 'byebye':
  14. clients.remove(self._client)
  15. self._client.close()
  16. break
  17. else:
  18. for client in clients:
  19. client.send(data)
  20. except Exception as e:
  21. print(e)
  22. clients.remove(self._client)
  23. break
  24. except Exception as e:
  25. print(e)
  26. server = socket()
  27. server.bind(('10.7.189.118', 12345))
  28. server.listen(512)
  29. clients = []
  30. while True:
  31. curr_client, addr = server.accept()
  32. print(addr[0], '连接到服务器.')
  33. clients.append(curr_client)
  34. ClientHandler(curr_client).start()
  35. if __name__ == '__main__':
  36. main()