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下的subprocess模块的入门指引
Apr 16 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Tensorflow简单验证码识别应用
May 25 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
学生信息管理系统python版
Oct 17 Python
Python 处理图片像素点的实例
Jan 08 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
Python3实现建造者模式的示例代码
Jun 28 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
用Python selenium实现淘宝抢单机器人
Jun 18 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
Nuxt.js踩坑总结分享
2018/01/18 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python两种遍历字典(dict)的方法比较
2014/05/29 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
如何进行Linux分区优化
2016/09/13 面试题
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
法定授权委托证明书
2014/09/27 职场文书
法人代表证明书格式
2014/10/01 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2015年教务主任工作总结
2015/07/22 职场文书