当前位置:
首页 >
socket中的TCP编程(调用免费聊天的机器人实现自动回复)
发布时间:2024/3/13
53
豆豆
生活随笔
收集整理的这篇文章主要介绍了
socket中的TCP编程(调用免费聊天的机器人实现自动回复)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
socket中的TCP编程(调用免费聊天的机器人实现自动回复)
在无聊时间复习了socket编程,写了这个简易代码!!注意要在联网状态下跑
1:服务器模块:
import socket import requestsimport random #自动生成回复语句 def get_response_message(msg):'''#api链接地址,我调用的是青云客,免费可以使用1000条/h,还可以无密钥智能机器人API接口说明 #支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天 接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词key 固定参数freeappid 设置为0,表示智能识别,可忽略此参数msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交 返回结果:{"result":0,"content":"内容"}result 状态,0表示正常,其它数字表示错误content 信息内容''' apiUrl = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg='+msgtry:#获取机器人的回复信息r = requests.post(apiUrl).json()#print(r)return r.get('content')except:returndef main():#本机运行HOST=''PORT = 5006s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((HOST,PORT))s.listen()print('listen at port:',PORT)conn,addr = s.accept()print('connected by',addr)while True:data = conn.recv(1024)data = data.decode()if not data:breakprint('Received message:',data)if data =='bye':conn.sendall('好的,byebye!!!'.encode())else:conn.sendall(get_response_message(data).encode())conn.close()s.close()if __name__ == '__main__':main()2:客户端模块
import socket #ip地址以及端口 HOST='127.0.0.1' PORT = 5006 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) try:s.connect((HOST,PORT)) except Exception as e:print('server not found or not open')sys.exit()while True:c = input('input the content you want to send:')s.sendall(c.encode())data = s.recv(1024)data = data.decode()print('recvied data:',data)#chat end flagif c.lower()=='bye':break s.close()3聊天记录截图
也可以为客户机调用机器人接口
总结
以上是生活随笔为你收集整理的socket中的TCP编程(调用免费聊天的机器人实现自动回复)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: h5贪吃蛇
- 下一篇: QML 导入ttf图标库