当前位置:主页 > python教程 > 详细介绍有关Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能

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

发布:2019-09-15 09:49:07 218


给大家整理了python自动回复相关的编程文章,网友袁宫莹根据主题投稿了本篇教程内容,涉及到Python、Socket、TCP协议、客户、服务端、自动回复聊天、详细介绍有关Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能相关内容,已被623网友关注,内容中涉及的知识点可以在下方直接下载获取。

详细介绍有关Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能

这篇文章主要介绍了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能,结合实例形式分析了Python+Socket实现带自动回复功能的TCP聊天程序相关操作方法与注意事项,需要的朋友可以参考下

 

本文实例讲述了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+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能的详细内容,更多请关注码农之家其它相关文章!


参考资料

相关文章

  • python中常用的九种数据预处理方法

    发布:2020-01-22

    这篇文章给大家分享了python中常用的九种预处理方法,对大家学习或使用python具有一定的参考价值,有需要的朋友们可以一起来看看。


  • Python读取xlsx数据生成图标代码实例

    发布:2021-05-09

    这篇文章主要介绍了Python读取xlsx数据生成图标代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  • python实现kMeans算法的详解

    发布:2022-07-11

    给大家整理一篇关于python的教程,聚类是一种无监督的学习,将相似的对象放到同一簇中,有点像是全自动分类,簇内的对象越相似,簇间的对象差别越大,则聚类效果越好。本文主要为大家详细介绍了python实现kMeans算法,具有


  • python实现汽车管理系统实例源码

    发布:2020-05-21

    这篇文章主要为大家详细介绍了python实现汽车管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • python 6种方法实现单例模式

    发布:2022-10-18

    给大家整理一篇关于python的教程,这篇文章主要介绍了python 6种方法实现单例模式,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下


  • Python根据文件名查找数据文件功能代码详解

    发布:2020-02-08

    这篇文章主要介绍了Python实现的根据文件名查找数据文件功能,涉及Python针对文件与目录的遍历、查询等相关操作技巧,需要的朋友可以参考下


  • python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现

    发布:2023-04-09

    本文主要介绍了python中使用numpy包的向量矩阵相乘np.dot和np.matmul实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • python安装后无法打开IDLE Subprocess Connection Error的解决方法

    发布:2023-03-06

    有朋友在安装了Python之后发现不能正常使用,就说明安装过程出了问题,下面这篇文章主要给大家介绍了关于python安装后无法打开IDLE Subprocess Connection Error的解决方法,需要的朋友可以参考下


网友讨论