Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
发布时间 - 2026-01-11 03:03:05 点击率:次本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能。分享给大家供大家参考,具体如下:

【吐槽】
网上的代码害死人,看着都写的言之凿凿,可运行就是有问题。
有些爱好代码、喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来。可是起码你也试试运行看啊大哥
【正文】
昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行。各种试,各种坑。
做了下面几个修改后,终于可以了:
1、对发送、接收的信息,分别进行编码和解码
2、客户端的第10行bind改为connect(这真是个大坑!!)
(本文基于windows 7 + python 3.4)
完整代码如下(人头担保,本人亲测正常!):
服务器端:
# tcp_server.py
'''服务器'''
from socket import *
from time import ctime
HOST = '' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpSerSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
tcpSerSock.bind(ADDR) #绑定地址
tcpSerSock.listen(5) #最大连接数为5
while True: #无限循环
print('尝试连接客户端。。。')
tcpCliSock, addr = tcpSerSock.accept() #等待接受连接
print('链接成功,客户端地址为:', addr)
while True:
data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
if not data: break #如果data为空,则跳出循环
print(data.decode())
msg = '{} 服务器已接收 [自动回复]'.format(ctime())
tcpCliSock.send(msg.encode())
tcpCliSock.close() #关闭连接
tcpSerSock.close() #关闭服务器
客户端:
# tcp_client.py
'''客户端'''
from socket import *
from time import ctime
HOST = 'localhost' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpCliSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
#tcpCliSock.bind(ADDR) #绑定地址
tcpCliSock.connect(ADDR) #绑定地址
while True:
msg = input('请输入:') #输入数据
if not msg: break #如果 msg 为空,则跳出循环
tcpCliSock.send(msg.encode())
data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
if not data: break #如果data为空,则跳出循环
print(data.decode())
【运行截图】
实验方法:先运行服务器端,然后运行客户端
然后就可以在客户端自由的与服务器端聊天了:
更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
# Python
# Socket
# TCP协议
# 客户端
# 服务端
# 中文
# 自动回复
# 聊天
# 对python中基于tcp协议的通信(数据传输)实例讲解
# Python Scapy随心所欲研究TCP协议栈
# Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
# Python网络编程之TCP与UDP协议套接字用法示例
# Python实现TCP/IP协议下的端口转发及重定向示例
# Python使用 TCP协议实现智能聊天机器人功能
# Python网络编程之Python编写TCP协议程序的步骤
# 绑定
# 为空
# 定了
# 创建一个
# 端口号
# 进阶
# 操作技巧
# 看着
# 几个
# 是个
# 言之凿凿
# 相关内容
# 是有
# 你也
# 数据结构
# 给大家
# 请输入
# 更多关于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
浅谈Javascript中的Label语句
如何用腾讯建站主机快速创建免费网站?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何快速搭建自助建站会员专属系统?
如何用已有域名快速搭建网站?
在线教育网站制作平台,山西立德教育官网?
JavaScript常见的五种数组去重的方式
详解jQuery中基本的动画方法
JS经典正则表达式笔试题汇总
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel如何使用Sanctum进行API认证?(SPA实战)
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何获取免费开源的自助建站系统源码?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel如何实现API速率限制?(Rate Limiting教程)
如何在服务器上三步完成建站并提升流量?
微信小程序 canvas开发实例及注意事项
如何实现javascript表单验证_正则表达式有哪些实用技巧
如何在宝塔面板创建新站点?
node.js报错:Cannot find module 'ejs'的解决办法
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
如何用西部建站助手快速创建专业网站?
如何在万网自助建站中设置域名及备案?
如何在IIS中新建站点并配置端口与物理路径?
香港网站服务器数量如何影响SEO优化效果?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
PHP 500报错的快速解决方法
如何有效防御Web建站篡改攻击?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Laravel如何实现文件上传和存储?(本地与S3配置)
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Android实现代码画虚线边框背景效果
Android Socket接口实现即时通讯实例代码
如何正确下载安装西数主机建站助手?
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
如何在阿里云虚拟服务器快速搭建网站?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel如何使用withoutEvents方法临时禁用模型事件
如何快速搭建高效WAP手机网站?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
无锡营销型网站制作公司,无锡网选车牌流程?

