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 反向代理 如何在高效的在一台服务器部署多个站点  无锡营销型网站制作公司,无锡网选车牌流程?