用socket寫一個簡單的聊天程式
阿新 • • 發佈:2018-11-22
服務端程式碼:
# 建立socket物件:socket.socket()——>繫結IP地址和埠:bind——>監聽:listen——>
# 得到請求:accept——>接收請求:recv——>傳送資訊:send——>關閉close
import socket server = socket.socket() # 建立一個socket物件 ip_port = ('192.168.43.58', 8001) # 給出IP地址和埠號 server.bind(ip_port) # 繫結IP和埠 server.listen(5) #View Code監聽 conn, address = server.accept() # 被動接收請求 while 1: content = input('服務端:') conn.send(content.encode('utf-8')) # 傳送資訊 from_client_msg = conn.recv(1024) # 接收來自客戶端的資訊 from_client_msg = from_client_msg.decode('utf-8') # 解碼來自客戶端的資訊 print('來自客戶端的資訊:', from_client_msg) if from_client_msg == 'bye': # 當客戶端的資訊為bye時結束聊天 break conn.close() # 關閉通道 server.close() # 關閉服務端
客戶端程式碼:
# 建立socket物件:socket.socket()——>連線伺服器:connect——>獲取訊息:recv——>傳送訊息:send——>關閉close
import socket client = socket.socket() # 建立socket物件 server_ip_port = ('192.168.43.58View Code', 8001) # 給出服務端的IP和埠 client.connect(server_ip_port) # 連線服務端 while 1: from_server_msg = client.recv(1024) # 接收來自服務端的資訊 from_server_msg = from_sever_msg.decode('utf-8') # 解碼來自服務端的資訊 print('來自服務端的資訊:', from_server_msg) content = input('客戶端:') client.send(content.encode('utd-8')) # 傳送資訊到服務端 if from_server_msg == 'bye': break client.close() # 關閉客戶端
# 客戶端裡面的兩處輸入錯誤: from_sever_msg改為:from_server_msg, utd-8改為:utf-8.