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内置函数的用法实例教程
Sep 08 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
python操作oracle的完整教程分享
Jan 30 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
tensorflow 模型权重导出实例
Jan 24 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
Python matplotlib可视化实例解析
Jun 01 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 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
apache rewrite_module模块使用教程
2008/01/10 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
php数组分页实现方法
2016/04/30 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
JS实现分页导航效果
2020/02/19 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python解析含有重复key的json方法
2019/01/22 Python
python实现两个文件夹的同步
2019/08/29 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
Collection和Collections的区别
2016/05/02 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
怎样写演讲稿
2014/01/04 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers