Python使用TCP协议编写会聊天的小机器人
本文代码简单模拟了机器人聊天软件原理,服务端提前建立好字典,然后根据接收到的内容自动回复。当然,这个程序对客户端的信息是进行严格匹配,大家可以尝试结合分词模块和人工智能知识,设计一个合适的模糊匹配算法,就可以实现更好的聊天机器人了。
服务端代码:
import socket
words = {'how are you?':'Fine,thank you.', 'how old are you?':'38','what is your name?':'Dong FuGuo', 'what's your name?':'Dong FuGuo', 'where do you work?':'SDIBT', 'bye':'Bye'}
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定socket
s.bind((HOST, PORT))
#开始监听一个客户端连接
s.listen(1)
print('Listening at port:',PORT)
conn, addr = s.accept()
print('Connected by', addr)
while True:
data = conn.recv(1024)
data = data.decode()
if not data:
break
print('Received message:', data)
conn.sendall(words.get(data, 'Nothing').encode())
conn.close()
s.close()
客户端代码:
import socket
#服务端主机IP地址和端口号
HOST = '127.0.0.1'
PORT = 50007
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('Received:', data)
if c.lower() == 'bye':
break
#关闭连接
s.close()
运行效果如图:
Python使用TCP协议编写会聊天的小机器人相关推荐
- Python|使用 TCP 协议实现智能聊天机器人
实验内容: 1.熟悉标准库 socket 的用法. 2.熟悉 TCP 协议工作原理. 3.理解端口号的概念与作用. 4.熟悉 Socket 编程.编写聊天程序的服务端代码和客户端代码.完成后,先启动服 ...
- Python使用 TCP协议实现智能聊天机器人功能
目录 1.TCP协议简单介绍(传输控制协议) 2.代码实现 3.进行聊天 1.TCP协议简单介绍(传输控制协议) TCP协议是在计算机网络TCP/IP体系中非常重要而且复杂的一个协议,它主要服务于传输 ...
- (已完善)基于Python的TCP 协议实现人机聊天(程序具有服务端和客户端)
服务端 实现目标 GUI显示人机互动聊天内容,当客户端输入不完整内容,如'how old',服务器能回复年龄等. GUI当客户端输入"send a file",服务器端回复&quo ...
- 从入门到入土:基于Python采用TCP协议实现通信功能的程序
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器——《干饭聊天室》
基于阿里云用C/C++做了一个http协议与TCP协议的web聊天室的服务器--<干饭聊天室> 在这里首先感谢前端小伙伴飞鸟 前端技术请看一款基于React.C++,使用TCP/HTTP协 ...
- 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...
本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...
- 基于TCP协议的网络聊天室
创建服务端程序 public class Server {public static void main(String[] args) {new Thread(new ServerTask()).st ...
- python 使用tcp协议实现web服务器(七) epoll版本web服务器
文章目录 摘要 前置知识 运行截图 html,css文件代码 index.html login.html register.html style.css python代码 摘要 使用python 基于 ...
- 用python实现TCP协议传输功能(客户端代码)
TCP传输的关键是得有socket(套接字),所以代码里面要用到socket的模块 实现原理所需要的环境,一台windows电脑,一个linux虚拟机,linux虚拟机下写好相关python代码,wi ...
最新文章
- 戴尔/Dell R420服务器在 CentOS 5.6 64bit环境下安装网卡驱动
- 【转】python2与python3的主要区别
- tensorflow随笔-tf.group
- fusion360安装包_【请注意】2020年以前从Autodesk中国区网站下载的Fusion 360已不能自动升级...
- Mybatis占位符问题—ReflectionException: There is no getter for property named xxx
- vuex 最简单、最详细的入门文档
- ES6/ES2015核心内容-转载
- 基于log4net的支持动态文件名、按日期和大小自动分割文件的日志组件
- 抄袭、借鉴与创新,有什么区别?
- 开源媒体标注系统cvat
- linux卸载kong,Ubuntu 源码安装Kong
- Eclipse中自动生成get/set时携带注释
- 62个大数据可视化工具
- Echarts Map地图下钻至县级
- win7计算机摄像头怎么打开,win7的摄像头在哪里打开 怎么打开win7摄像头
- 整洁代码--写好注释
- NAS媒体库资源归集整理工具nas-tools
- oppo X907刷机包 COLOROS 1.0 正式版公布 安卓4.2.2
- html按钮位置设置吗,html改变button按钮位置
- Android Studio启动海马玩模拟器
热门文章
- 一年中重要的节日列表_感悟 | 一年中最重要的节日是春节!
- java 日志技术_java 日志技术汇总(log4j , Commons-logging,.....)
- java label 超链接_Swing之带超链接的label简单实现。
- idam oracle_oracle中的wm_concat对应达梦的是什么?
- linux怎么查看定时任务有没有运行,怎么看crontab定时任务是否执行
- 2017年最流行的5个php开发框架视频教程推荐
- POJ1654 Area(多边形面积)
- 基于OneAPM的Web系统性能监测
- 五个案例让你明白GCD死锁
- 在SAE搭建微信公众账号服务