服務器運行當顯示
E:\pycharm\python\venv\Scripts\python.exe E:/pycharm/python/協議/機器人聊天服務器.py
開始監聽
accept
說明服務器運行成功? 之后運行客戶端,輸入“命令”
E:\pycharm\python\venv\Scripts\python.exe E:/pycharm/python/協議/機器人聊天客戶端.py
你好
服務器:你好,以后請多指教
見到你真開心
服務器:希望我每天都能讓你開心
服務器代碼:
#導入python包
import socket #內置
import requests,json
# ip地址 端口號
ip_port = ("127.0.0.1",8000)
# 實例化socket對象
sk = socket.socket()
sk.bind(ip_port) #綁定地址
print("開始監聽")
sk.listen(5) #監聽請求
print("accept")
def getInfo(text): #圖靈機器人做好的文檔信息url = "http://openapi.tuling123.com/openapi/api/v2"data = {"reqType":0,"perception": {"inputText": {"text": "%s"%text}},"userInfo": {"apiKey": "2d94f79c11ea446ea2122bd9c77ae104", #自己的密鑰"userId": "2dc32cc0de96c766"}}data = json.dumps(data)res = requests.post(url=url,data=data,headers={'content-type':'application/json'})res = json.loads(res.text)res2 = res['results'][0]['values']['text']return res2conn,addr = sk.accept() #響應請求
while True: #給死循環data = conn.recv(1024).decode() #接受客戶端 請求1text = getInfo(data) #在文檔中將接受的消息匹配conn.send(text.encode()) # 將文檔中對應的回復 發送請求2
客戶端代碼:
import socket
sk = socket.socket() #實例化socket對象
try:sk.connect(("127.0.0.1",8000)) # 連接成功
except:print("連接服務器失敗")
while True: #死循環data = input("").encode() #input輸入框讓其客戶端第一次輸入sk.send(data) #發送請求1res = sk.recv(1024).decode() #接受請求2print("服務器:%s"%res) #輸出服務器的回復
在客戶端與機器人聊天的功能就實現了!
?