python3 單線程(gevent)實現併發的socket通信

# -*- coding: utf-8 -*- from gevent import monkey; monkey.patch_all()import gevent from socket import * def talk(conn): while 1: # 循環通信 try: from_client_msg = conn.recv(1024) if not from_client_msg:break print("來自客戶端的消息:%s" %(from_client_msg)) conn.send(from_client_msg.upper()) except: break conn.close() if __name__ == '__main__': server = socket() ip_port = ("127.0.0.1", 8001) server.bind(ip_port) server.listen(5) while 1: # 循環鏈接 conn, addr = server.accept() gevent.spawn(talk, conn) # 開啓一個協程 server.close()
# -*- 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()
相關文章
相關標籤/搜索