Browse Source

上傳檔案到 ''

allen 2 years ago
parent
commit
240a815037
1 changed files with 50 additions and 0 deletions
  1. 50 0
      tcp-socket.py

+ 50 - 0
tcp-socket.py

@@ -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()