|
@@ -0,0 +1,50 @@
|
|
|
+import socket
|
|
|
+from threading import Thread
|
|
|
+import time
|
|
|
+import json
|
|
|
+
|
|
|
+ADDRESS =('192.168.50.188',8)
|
|
|
+g_socket_server= None
|
|
|
+g_conn_poll = {}
|
|
|
+
|
|
|
+def init():
|
|
|
+ global g_socket_server
|
|
|
+ g_socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
+ g_socket_server.bind(ADDRESS)
|
|
|
+ g_socket_server.listen(5)
|
|
|
+ print('server start at: %s:%s' % ADDRESS)
|
|
|
+ print('wait for connection...')
|
|
|
+
|
|
|
+def accept_client():
|
|
|
+ while True:
|
|
|
+ client, info = g_socket_server.accept()
|
|
|
+ thread = Thread(target=message_handle,args=(client,info))
|
|
|
+ thread.setDaemon(True)
|
|
|
+ thread.start()
|
|
|
+
|
|
|
+
|
|
|
+def message_handle(client,info):
|
|
|
+ global g_conn_poll
|
|
|
+ client.sendall("connect server successfully!".encode(encoding='utf8'))
|
|
|
+ while True:
|
|
|
+ try:
|
|
|
+ byte = client.recv(1024)
|
|
|
+ msg=byte.decode(encoding='utf8')
|
|
|
+ jd=json.loads(msg)
|
|
|
+ cmd=jd['COMMAND']
|
|
|
+ client_type=jd['client_type']
|
|
|
+ if 'CONNECT'==cmd:
|
|
|
+ g_conn_poll[client_type]=client
|
|
|
+ print('on client connect:'+client_type,info)
|
|
|
+ elif 'SEND_DATA'==cmd:
|
|
|
+ print('recv client msg:'+client_type,jd['data'])
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ print("client offline " + client_type)
|
|
|
+ break
|
|
|
+
|
|
|
+init()
|
|
|
+while True:
|
|
|
+ thread = Thread(target=accept_client)
|
|
|
+ thread.setDaemon(True)
|
|
|
+ thread.start()
|