2Python全栈之路系列之基于socket实现聊天机器人

简介:

Python全栈之路系列之基于socket实现聊天机器人


通过socket实现局域网内的聊天工具。

service.py文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
 
import  socket
 
# 创建一个socket对象
sk  =  socket.socket()
 
# 绑定允许连接的IP地址和端口
sk.bind(( '127.0.0.1' 6053 , ))
 
# 服务端允许起来之后,限制客户端连接的数量,如果超过五个连接,第六个连接来的时候直接断开第六个。
sk.listen( 5 )
 
while  True :
     # 会一直阻塞,等待接收客户端的请求,如果有客户端连接会获取两个值,conn=创建的连接,address=客户端的IP和端口
     conn, address  =  sk.accept()
     
     # 当用户连接过来的时候就给用户发送一条信息,在Python3里面需要把发送的内容转换为字节
     conn.sendall(bytes( "你好,欢迎登陆!" , encoding = "utf-8" ))
     
     while  True :
         # 输出等待客户端发送内容
         print ( "正在等待Client输入内容......" )
         # 接收客户端发送过来的内容
         ret_bytes  =  conn.recv( 1024 )
         # 转换成字符串类型
         ret_str  =  str (ret_bytes, encoding = "utf-8" )
         # 输出用户发送过来的内容
         print (ret_str)
         
         # 如果用户输入的是q
         if  ret_str  = =  "q" :
             # 则退出循环,等待下个用户输入
             break
         # 给客户端发送内容
         inp  =  input ( "Service请输入要发送的内容>>> " )
         conn.sendall(bytes(inp, encoding = "utf-8" ))

client.py文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
 
import  socket
 
# 创建一个socket对象
obj  =  socket.socket()
 
# 制定服务端的IP地址和端口
obj.connect(( '127.0.0.1' 6053 , ))
 
# 阻塞,等待服务端发送内容,接受服务端发送过来的内容,最大接受1024字节
ret_bytes  =  obj.recv( 1024 )
 
# 因为服务端发送过来的是字节,所以我们需要把字节转换为字符串进行输出
ret_str  =  str (ret_bytes, encoding = "utf-8" )
 
# 输出内容
print (ret_str)
 
while  True :
     # 当进入连接的时候,提示让用户输入内容
     inp  =  input ( "Client请输入要发送的内容>>> " )
     # 如果输出q则退出
     if  inp  = =  "q" :
         # 把q发送给服务端
         obj.sendall(bytes(inp, encoding = "utf-8" ))
         # 退出当前while
         break
     else :
         # 否则就把用户输入的内容发送给用户
         obj.sendall(bytes(inp, encoding = "utf-8" ))
         # 等待服务端回答
         print ( "正在等待Server输入内容......" )
         # 获取服务端发送过来的结果
         ret  =  str (obj.recv( 1024 ), encoding = "utf-8" )
         # 输出结果
         print (ret)
         
# 连接完成之后关闭链接
obj.close()

执行结果

socket-02










本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1917848,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
4月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
5月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
203 1
|
6月前
|
数据采集 自然语言处理 Java
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
本文以反面教材形式,剖析了在使用 Playwright 爬取懂车帝车友圈问答数据时常见的配置错误(如未设置代理、Cookie 和 User-Agent),并提供了 Python、Java 和 .NET 三种语言的修复代码示例。通过错误示例 → 问题剖析 → 修复过程 → 总结教训的完整流程,帮助读者掌握如何正确配置爬虫代理及其它必要参数,避免 IP 封禁和反爬检测,实现高效数据采集与分析。
364 3
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
|
4月前
|
机器人 API 数据安全/隐私保护
QQ机器人插件源码,自动回复聊天机器人,python源码分享
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47 智能回复逻辑
|
4月前
|
JSON 机器人 数据安全/隐私保护
微信自动聊天机器人, 微信自动回复机器人,python框架分享
这个微信机器人实现包含主程序、配置文件、工具函数和测试脚本四个模块。主程序使用itchat库
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
667 45
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
577 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
607 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
360 2

推荐镜像

更多