Python基於socket實現簡單的即時通訊功能樣本,pythonsocket
本文執行個體講述了Python基於socket實現簡單的即時通訊功能。分享給大家供大家參考,具體如下:
用戶端tcpclient.py
# -*- coding: utf-8 -*-import socketimport threading# 目標地址IP/URL及連接埠target_host = "127.0.0.1"target_port = 9999# 建立一個socket對象client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 串連主機client.connect((target_host,target_port))def handle_send(): while True: content = raw_input() client.send(content)def handle_receive(): while True: response = client.recv(4096) print responsesend_handler = threading.Thread(target=handle_send,args=())send_handler.start()receive_handler = threading.Thread(target=handle_receive,args=())receive_handler.start()
伺服器端tcpserver.py
# -*- coding: utf-8 -*-import socketimport threading# 監聽的IP及連接埠bind_ip = "127.0.0.1"bind_port = 9999#socket 伺服器初始化server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind((bind_ip,bind_port))server.listen(5)print "[*] Listening on %s:%d" % (bind_ip,bind_port)# 定義函數handle_client,輸入參數client_socketdef handle_client(): while True: request = client_socket.recv(1024) print "[*] Received:%s" % requestdef handle_send(): while True: content = raw_input() client_socket.send(content);#阻塞在這裡,等待接收用戶端的資料client_socket,addr = server.accept()print "[*] Accept connection from:%s:%d" % (addr[0],addr[1])#建立一個線程client_handler = threading.Thread(target=handle_client,args=())client_handler.start()send_handler = threading.Thread(target=handle_send,args=())send_handler.start()