服务器与客户端连接 & 聊天机器人
服务器运行当显示
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) #输出服务器的回复
在客户端与机器人聊天的功能就实现了!
服务器与客户端连接 & 聊天机器人的更多相关文章
- (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析【待写】
(3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析[待写]
- Oracle 局域网布置数据库服务器,客户端连接提示TNS:无监听器的解决实现
Oracle布置在局域网中的服务器的时候,用本地PL SQL 链接没有丝毫的问题. 但是,如果用远程客户端的PL SQL 链接的时候却出现了“TNS:无监听器”的问题. 首先,就是进行了服务器端的监听 ...
- ESP8266开发综合篇第十四节(LUA)-8266作为TCP服务器,Android客户端连接,显示温湿度,控制继电器
前几节先略过,我先补充上大部分人迫切的需求 编写Android TCP客户端 用Android Studio 先做一下界面 然后放一个输入对话框,因为没有显示出来这个控件.所以就手写 剩下的自己研究 ...
- redis学习教程四《管理、备份、客户端连接》
redis学习教程四<管理.备份.客户端连接> 一:Redis服务器命令 Redis服务器命令 下表列出了与Redis服务器相关的一些基本命令. 序号 命令 说明 1 BGREWRITE ...
- Mysql从客户端连接服务器连不上的问题
Mysql从客户端连接服务器连不上的问题 公司要用Mysql做一个测试,开始在自己的本地建一个Mysql数据库自己本地的程序再连上去,没有遇到过连接不上的问题.这次数据库在服务器上,从本地客户端连 ...
- 用友U8客户端连接不上服务器全攻略
用友U8客户端连接不上服务器全攻略 http://www.enet.com.cn2009年09月23日09:26 来自论坛 [导读]:如果网络不通,就让用户查找网络原因 检查步骤: 1.网络是否通? ...
- C# Winform Soket 网络编程 多个客户端连接服务器并返回客户端操作请求
2017.8.2 服务器: #region 参数与集合 /// <summary> /// 客户端IP /// </summary> string clientIP; /// ...
- 使用 WebSocket 客户端连接 MQTT 服务器
简介 近年来随着 Web 前端的快速发展,浏览器新特性层出不穷,越来越多的应用可以在浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用. WebSock ...
- C/S模式客户端连接服务器连接不上的问题
C/S模式客户端连接服务器连接不上的问题 1.服务器电脑防火墙关闭 2.服务器端SQL SERVER2008R: 配置工具--SQL SERVER配置管理器 MSSQLSERVER协议.客户端协议(S ...
随机推荐
- SQL中内连接和外连接的区别
数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...
- Oracle 11g 概述 chaper1
关系模型 E-R 模型 范式 1.简述Oracle oracle 是1977 IBM 公司研发的一款强大的数据库软件. 2.关系型数据的基本理论 关系型数据库与数据库管理系统 1)数据库是因为有对 ...
- CentOS7──xxx is not in the sudoers file
提示"xxx is not in the sudoers file. This incident will be reported.其中 ”XXX“是你的用户名,也就是你的用户名没有权限使用 ...
- 20175208 《Java程序设计》第九周学习总结
20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...
- Linux基础命令---free显示内存使用
free free指令用来显示内存的使用情况,显示系统中可用和已使用的物理和交换内存的总量,以及内核使用的缓冲区.应该忽略共享内存列:它已经过时了. 此命令的适用范围:RedHat.RHEL.Ubun ...
- Load data local infile 实验报告
1.实验内容: 利用SQL语句“load data local infile”将“pet.txt”文本文件中的数据导入到mysql中 (pet表在数据库menagerie中) 2.实验过程及结果: ( ...
- 关于React Native中FlatList的onEndReached属性频繁调用的一种解决办法
FlatList组件是RN0.43后引入的组件.作为高性能列表组件,FlatList在ListView的基础上优化了加载性能并简化了渲染过程.不仅如此,该组件还提供了onRefresh和onEndRe ...
- 集成学习:以Bagging、Adaboosting为例
集成学习是一大类模型融合策略和方法的统称,以下以bagging和boosting为例进行说明: 1.boosting boosting方法训练分类器采用串行的方式,每个弱分类器之间是相互依赖的,尤其后 ...
- 大佬是怎么思考设计MySQL优化方案的?
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. 一.优化的哲学 注:优化有风险,涉足需谨 ...
- 直方图均衡化与Matlab代码实现
昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...