# -*- coding: utf-8 -*- import threading from socket import * from threading import Thread def talk(conn): while 1: # 循環通訊 try: from_client_msg = conn.recv(1024) if not from_client_msg:break print("線程<%s>來自客戶端的消息:%s" %(threading.current_thread().getName(), from_client_msg)) conn.send(from_client_msg.upper()) except: break conn.close() if __name__ == '__main__': '''一個進程里開多線程實現socket通訊''' server = socket() ip_port = ("127.0.0.1", 8001) server.bind(ip_port) server.listen(5) while 1: # 循環連接 conn, addr = server.accept() t = Thread(target=talk, args=(conn,)) t.start() server.close() # 線程<Thread-1>來自客戶端的消息:b'aaa' # 線程<Thread-2>來自客戶端的消息:b'bbb' # 線程<Thread-3>來自客戶端的消息:b'ccc' # 線程<Thread-4>來自客戶端的消息:b'dddd' # 線程<Thread-5>來自客戶端的消息:b'eeee' # 線程<Thread-6>來自客戶端的消息:b'ffff'
# -*- coding: utf-8 -*- from socket import * client = socket() ip_port = ("127.0.0.1", 8001) client.connect(ip_port) while 1: # 循環通訊 inp = input(">>:").strip() if not inp: continue if inp.upper() == "Q": break client.send(inp.encode()) from_server_msg = client.recv(1024) print("來自服務端的消息:", from_server_msg) client.close()