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 】 【 网络技术251811 】 【 AI营销90571


相关推荐: 网易LOFTER官网链接 老福特网页版登录地址  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何用腾讯建站主机快速创建免费网站?  Python函数文档自动校验_规范解析【教程】  详解Huffman编码算法之Java实现  如何构建满足综合性能需求的优质建站方案?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何快速搭建高效香港服务器网站?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Java垃圾回收器的方法和原理总结  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel怎么实现验证码(Captcha)功能  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  海南网站制作公司有哪些,海口网是哪家的?  浅述节点的创建及常见功能的实现  详解jQuery中基本的动画方法  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何用PHP工具快速搭建高效网站?  Laravel如何实现事件和监听器?(Event & Listener实战)  如何在腾讯云服务器快速搭建个人网站?  如何打造高效商业网站?建站目的决定转化率  利用python获取某年中每个月的第一天和最后一天  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何用狗爹虚拟主机快速搭建网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何快速配置高效服务器建站软件?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  微信公众帐号开发教程之图文消息全攻略  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何快速搭建高效简练网站?  Laravel如何实现API速率限制?(Rate Limiting教程)  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  晋江文学城电脑版官网 晋江文学城网页版直接进入  手机网站制作与建设方案,手机网站如何建设?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  微信小程序 require机制详解及实例代码  Python正则表达式进阶教程_复杂匹配与分组替换解析  微信小程序 五星评分(包括半颗星评分)实例代码