tcp-socket.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import socket
  2. from threading import Thread
  3. import time
  4. import json
  5. ADDRESS =('192.168.50.188',8)
  6. g_socket_server= None
  7. g_conn_poll = {}
  8. def init():
  9. global g_socket_server
  10. g_socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11. g_socket_server.bind(ADDRESS)
  12. g_socket_server.listen(5)
  13. print('server start at: %s:%s' % ADDRESS)
  14. print('wait for connection...')
  15. def accept_client():
  16. while True:
  17. client, info = g_socket_server.accept()
  18. thread = Thread(target=message_handle,args=(client,info))
  19. thread.setDaemon(True)
  20. thread.start()
  21. def message_handle(client,info):
  22. global g_conn_poll
  23. client.sendall("connect server successfully!".encode(encoding='utf8'))
  24. while True:
  25. try:
  26. byte = client.recv(1024)
  27. msg=byte.decode(encoding='utf8')
  28. jd=json.loads(msg)
  29. cmd=jd['COMMAND']
  30. client_type=jd['client_type']
  31. if 'CONNECT'==cmd:
  32. g_conn_poll[client_type]=client
  33. print('on client connect:'+client_type,info)
  34. elif 'SEND_DATA'==cmd:
  35. print('recv client msg:'+client_type,jd['data'])
  36. except Exception as e:
  37. print(e)
  38. print("client offline " + client_type)
  39. break
  40. init()
  41. while True:
  42. thread = Thread(target=accept_client)
  43. thread.setDaemon(True)
  44. thread.start()