Python socket实现的文件下载器功能示例

 更新时间:2019年11月15日 10:16:13   作者:独听钟声晚  
这篇文章主要介绍了Python socket实现的文件下载器功能,结合实例形式分析了Python使用socket模块实现的文件下载器客户端与服务器端相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python socket实现的文件下载器功能。分享给大家供大家参考,具体如下:

文件下载器

先写客户端再写服务端

1.tcp下载器客户端

import socket
def main():
  # 创建套接字
  tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 获取服务器ip和port
  dest_ip = input("请输入下载服务器的ip:")
  dest_port = int(input("请输入下载服务器的port:"))
  # 连接服务器
  tcp_socket.connect((dest_ip,dest_port))
  # 获取下载的文件名称
  download_file_name = input("请输入要下载的文件名称:")
  # 将文件名称发送到服务器
  tcp_socket.send(download_file_name.encode("gbk"))
  # 接收文件中的数据
  recv_data = tcp_socket.recv(1024) # 1024=1k 1024*1024=1M
  if recv_data:
    # 保存接收到的数据到新文件
    with open("[新]"+download_file_name.wb) as f:
      f.write(recv_data)
  # 关闭套接字
  tcp_socket.close()
if __name__ == '__main__':
  main()

2.tcp下载器服务端

import socket
def send_file_2_client(new_client_socket,client_addr):
  # 1.接收客户端需要下载的文件名
  file_name = new_client_socket.recv(1024).decode("gbk")
  print("客户端(%s)需要下载的文件是:%s" %(str(client_addr),file_name))
  file_content = None
  # 2.打开这个文件,读取数据
  try:
    f = open(file_name,"rb")
    file_content = f.read()
    f.close()
  except Exception as ret:
    print("没有要下载的文件(%s)" % file_name)
  # 3.发送文件数据给客户端
  if file_content:
    new_client_socket.send(file_content)
def main():
  # 创建套接字
  tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  # 绑定本地信息
  tcp_server_socket.bind("",7890)
  # 让默认套接字由主动变为被动listen
  tcp_server_socket.listen(128)
  while True:
    # 等待客户端的连接 accept
    new_client_socket ,client_addr = tcp_server_socket.accept()
    # 调用发送文件函数,完成客户端的服务
    send_file_2_client(new_client_socket,client_addr)
    # 关闭套接字
    new_client_socket.close()
  tcp_server_socket.close()
if __name__ == "__main__":
  main()

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

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

相关文章

  • Tensorflow限制CPU个数实例

    Tensorflow限制CPU个数实例

    今天小编就为大家分享一篇Tensorflow限制CPU个数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 简单了解python shutil模块原理及使用方法

    简单了解python shutil模块原理及使用方法

    这篇文章主要介绍了简单了解python shutil模块原理及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 使用python实现简单爬取网页数据并导入MySQL中的数据库

    使用python实现简单爬取网页数据并导入MySQL中的数据库

    这篇文章主要为大家详细介绍了如何使用 python 实现简单爬取网页数据并导入 MySQL 中的数据库,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-06-06
  • Pytorch 保存模型生成图片方式

    Pytorch 保存模型生成图片方式

    今天小编就为大家分享一篇Pytorch 保存模型生成图片方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python在不同场景合并多个Excel的方法

    Python在不同场景合并多个Excel的方法

    这篇文章主要介绍了Python在不同场景合并多个Excel的方法,文章围绕主题总共分享了三种方法,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Django执行指定脚本的几种方法

    Django执行指定脚本的几种方法

    这篇文章主要给大家介绍了关于Django执行指定脚本的几种方法,文中通过实例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Python中的面向对象编程详解(上)

    Python中的面向对象编程详解(上)

    这篇文章主要介绍了Python中的面向对象编程详解(上),本文讲解了创建类、实例化类、类属性、特殊方法内建属性、静态变量属性、实例变量属性、方法属性、静态方法、类方法等内容,需要的朋友可以参考下
    2015-04-04
  • python解决Fedora解压zip时中文乱码的方法

    python解决Fedora解压zip时中文乱码的方法

    这篇文章给大家介绍了如何利用python解决Fedora解压zip时中文乱码的方法,对大家具有一定参考借鉴价值,有需要的朋友们可以参考学习,下面来一起看看吧。
    2016-09-09
  • Python视频剪辑Moviepy库使用教程

    Python视频剪辑Moviepy库使用教程

    这篇文章主要为大家介绍了Python视频剪辑Moviepy库使用教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 一文教你如何用Python轻轻松松操作Excel,Word,CSV

    一文教你如何用Python轻轻松松操作Excel,Word,CSV

    数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。本文将为大家详细介绍一下如何用Python轻轻松松操作Excel、Word、CSV,需要的可以参考一下
    2022-02-02

最新评论