使用TCP编写一个文件下载器,分为客户端和服务器,此博客为上一篇的延伸,增加了文件读写编程。

下载器服务器程序:

import socketdef send_file_client(new_client_socket, client_addr):#  1.接受客户端发过来的文件名file_name=new_client_socket.recv(1024).decode("utf-8")print("客户端发下载的文件名:%s"%str(file_name))#  2.打开这个文件,读取数据file_content=Nonetry: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_sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#  绑定本地信息tcp_sever_socket.bind(('',7890))#  让默认是套接字主动变为被动(listen)tcp_sever_socket.listen(128)while True:#  等待客户端的链接print("等待新的客户端到来")new_client_socket,client_addr=tcp_sever_socket.accept()  #  服务套接字print("客户端已经到来:%s"%str(client_addr))#  调用发送文件函数send_file_client(new_client_socket,client_addr)#  关闭套接字new_client_socket.close()print("已经为这个客户端服务完毕")tcp_sever_socket.close()
if __name__ == '__main__':main()

下载器客户端程序:

import socketdef main():#  1.创建套接字tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#  2.获取服务器ip,portdest_ip=input("输入下载服务器的IP:")dest_port=int(input("输入下载服务器的port:"))#  3.连接服务器tcp_socket.connect((dest_ip,dest_port))#  4.获取下载的文件名字download_file=input("输入下载文件的名字:")#  5.将下载的文件名字发送到服务器tcp_socket.send(download_file.encode("utf-8"))#  6.接受文件中的数据recv_data=tcp_socket.recv(1024*1024)if recv_data:#  7.保存接收到的数据到文件中with open("new"+download_file,"wb") as f:f.write(recv_data)#  8.关闭套接字tcp_socket.close()
if __name__ == '__main__':main()

TCP文件下载器(Python)相关推荐

  1. 网络 #TCP #UDP #文件下载器 #网络通信

    网络 网络基础 1)IP地址 1>查看网卡信息 2>IP地址分类 3>私有IP 2)端口 1>端口的分类(部分) 1.知名端口 2.动态端口 2>查看端口号 3)sock ...

  2. 使用网络TCP搭建一个简单文件下载器

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载 ...

  3. python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器

    原标题:Python3使用TCP编写一个简易的文件下载器 利用Python3来实现TCP协议,和UDP类似.UDP应用于及时通信,而TCP协议用来传送文件.命令等操作,因为这些数据不允许丢失,否则会造 ...

  4. python写一个文件下载器_python使用tcp实现一个简单的下载器

    上一篇中介绍了tcp的流程,本篇通过写一个简单的文件下载器程序来巩固之前学的知识. 文件下载器的流程如下: 客户端: 输入目标服务器的ip和port 输入要下载文件的名称 从服务器下载文件保存到本地 ...

  5. python高级 笔记 08 (TCP服务器增强 + 文件下载器 案例 综合应用)

    TCP服务器接受客户端多条信息 主要方式: 通过在接受信息,等待数据 recv前增加一个死循环 import sockettcp_client_socket = socket.socket(socke ...

  6. python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...

    json2mysql 这次更新了将一个json文件中的数据导入到mysql的脚本. 是用nodejs写的. 对应的文件是tomysql.js 有兴趣的同志可以研究下. pythonCollection ...

  7. Python利用tcp_socket实现文件下载器

    Python利用tcp_socket实现简单文件下载功能 文章目录 Python利用tcp_socket实现简单文件下载功能 一.客户端 二.服务端 三.成果展示 3.1 创建测试文件 3.2 下载测 ...

  8. 使用IntentService给自己的Android应用写一个文件下载器。

    接着上一篇的http://www.cnblogs.com/zhengxt/p/3657833.html,当我们想给自己的APP写一个文件下载器时,可以用重写IntentService来实现. 使用In ...

  9. python装饰器-Python——装饰器(Decorator)

    1.什么是装饰器? 装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上.和这个函数绑定在一起.在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶 ...

最新文章

  1. 怎么设计计算机网络共享,如何设置网络共享 网络共享设置方法【详解】
  2. ACdream OJ 1140 Counting Triangles
  3. SpringBoot + Vue + nginx项目一起部署
  4. Redis的数据结构之字符串
  5. Linux运维工程师面试-部分题库
  6. android contacts 编辑,如何在Android中的.csv文件中逐行编写contactn...
  7. omnigraffle 画曲线_「技法」三步学会用绘图利器 OmniGraffle 绘制流程图
  8. 单例对象会被jvm的gc时回收吗_【PHP设计模式】单例模式
  9. python共享内存mmap_python - IPC在单独的Docker容器中的Python脚本之间共享内存 - 堆栈内存溢出...
  10. C++ std::map 和 std::unordered_map 区别 时间复杂度 适用
  11. 解决:Failed to create 'build\outputs\apk\watch-debug-unaligned.apks': 拒绝访问。
  12. 淘宝店铺首页全屏轮播图制作
  13. C语言运算符使用错误【持续更新】
  14. python自动排版公众号_如何实现公众号排版自动化?微信公众号一键排版软件推荐...
  15. MATLAB如何配平化学方程,【如何配平化学方程式】作业帮
  16. (转)Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
  17. pipeline离线安装
  18. Directory traversal in Spring framework漏洞修复
  19. 从0到1万字贴心讲解单体架构到分布式架构的演变(第一篇)
  20. ORACLE实现MySQL中substring_index函数功能

热门文章

  1. 叮咚买菜的数据应用之路,互联网公司的数据决策平台有何不同
  2. 分享codeigniter 路由(URL)终极优化
  3. string的飞鸽传书字符串缓冲区
  4. 【飞秋】使用C# 4编写动态的代码
  5. 用V C++检测和隔离内存泄漏
  6. 总结一些C/C++的知识点
  7. 2022年,我只做 3 件事
  8. 好玩有趣,Google 首款小程序来啦!
  9. 经典面试题(10):关于this指向,以下代码将输出什么?
  10. java1.9关键字_对 Java 9 把单个下划线作为关键字的猜想