服务器与客户端连接 & 聊天机器人

时间:2021-07-17 11:10:51

服务器运行当显示

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 res2 conn,addr = sk.accept() #响应请求
while True: #给死循环
data = conn.recv(1024).decode() #接受客户端 请求1
text = 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) #发送请求1
res = sk.recv(1024).decode() #接受请求2
print("服务器:%s"%res) #输出服务器的回复

 在客户端与机器人聊天的功能就实现了!