Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例


Posted in Python onAugust 31, 2017

本文实例讲述了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+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例

然后就可以在客户端自由的与服务器端聊天了:

Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python从入门到精通(DAY 1)
Dec 20 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python流程控制 while循环实现解析
Sep 02 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
Python简单实现区域生长方式
Jan 16 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
python怎么判断素数
Jul 01 Python
python实战之90行代码写个猜数字游戏
Apr 22 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 #Python
python requests 使用快速入门
Aug 31 #Python
如何高效使用Python字典的方法详解
Aug 31 #Python
利用Python爬取微博数据生成词云图片实例代码
Aug 31 #Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 #Python
go和python变量赋值遇到的一个问题
Aug 31 #Python
理解Python中的绝对路径和相对路径
Aug 30 #Python
You might like
PHP中for循环语句的几种变型
2007/03/16 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
Python MD5加密实例详解
2017/08/02 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
医院保洁服务方案
2014/06/11 职场文书
班训口号大全
2014/06/18 职场文书
通信工程求职信
2014/07/16 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
影视后期实训报告
2014/11/05 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
营销计划书
2015/01/17 职场文书
大学生自荐信范文
2015/03/05 职场文书