一.下载文件

tcp 客户端

1.创建套接字
down_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
2.获取ip,port
down_ip = input("请输入ip:")
down_port = int(input("请输入port:"))
3.链接服务器
down_socket.connect((down_ip,down_port))
4.获取下载文件的名字
down_name = input("请输入下载文件名:")
5.将文件名发给服务器
down_socket.send(down_name.encode("utf-8"))
6.接受文件中的数据
accept = down_socket.recv(1024)
print(accept)
7.判断文件是否有内容
if accept:
with open("新"+down_name, "wb") as f:
       f.write(accept)
8.关闭套接字
down_socket.close()

tcp服务端

1.创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK.STREAM)
2.绑定本地的信息
server_socket.bind(("", 8088))
3.等待(有主动变为被动listen)
server_socket.listen(128)
4.等待服务端链接
new_server_socket, server_addr = server_socket.accept()
print(str(server_saddr))
5.等待服务端的请求,为客户段服务
 1.获取下载文件名
down_name = new_server_socket.recv(1024).decode("utf-8")
   print("你要下载的文件是%s" % down_name)
   
 2.打开文件
file_name = None
try:
       f = open(down_name,"rb")
file_name = f.read()
       f.close
   except Exception as ret:
       print("没有要下载的文件%s" % down_name)
 3.判断是否为空文件
if down_name:
       new_server_socket.send(file_name)
6.关闭套接字
new_server_socket.close()
server_socket.close()

有需要的话可以关注我的微信公众号,会第一时间接收最新的知识。

Tcp下载文件的更多相关文章

  1. 7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)

    看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧 先看这个节安装WEB服务器.....安装好以后就可以用HTTP访问电脑文件了 6-STM32物联网开发WIFI(ESP8266)+GPR ...

  2. 01_基于TCP的循环为同一个客户端下载文件的下载器

    原版: TCP分为客户端(client)和服务器(server),每次服务器只能为客户端提供一次的下载服务. 改良版: TCP分为客户端(client)和服务器(server), (1)每次服务器能为 ...

  3. 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(HTTP介绍,TCP实现HTTP下载文件)

    https://www.cnblogs.com/yangfengwu/p/10357564.html 看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧 先看这个节安装WEB服务器.... ...

  4. 基于php下载文件的详解

    本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下 php下载文件,比如txt文件. 出现的效果就是,弹出浏览器自带的下载框,出现另存为操作.有时候会出现内存溢出和超时的现象. 超时的话 ...

  5. linux FTP 批量下载文件

    wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理.wget名称的由来是“World Wide Web”与“ge ...

  6. JWebFileTrans: 一款可以从网络上下载文件的小程序(一)

    一 摘要 JWebFileTrans是一款基于socket的网络文件传输小程序,目前支持从HTTP站点下载文件,后续会增加ftp站点下载.断点续传.多线程下载等功能.其代码已开源到github上面,下 ...

  7. WCF上传下载文件

    思路:上传时将要上传的文件流提交给服务器端 下载时只需要将服务器上的流返回给客户端即可 1.契约,当需要传递的数量多于一个时就需要通过messagecontract来封装起来 这里分别实现了上传和下载 ...

  8. 下载文件的协议:HTTP、FTP、P2P

    本篇学习笔记以HTTP.FTP.P2P叙述与网上下载文件有关的协议 需要掌握的要点: 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载 ...

  9. 初级版python登录验证,上传下载文件加MD5文件校验

    服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...

随机推荐

  1. Windows10 Virtualization Technology虚拟化技术功能

    为什么要开启VT功能,做机器学习环境搭建.运用Docker容器等等,所以首先要确认一下机器是否已经开启了VT技术功能,以此记录一下经历而已. VT是什么?为什么要开启VT?VT是一种虚拟化技术,可以扩 ...

  2. easyui-tabs及其内容展示

    方案一<div class="easyui-panel">        <div class="easyui-tabs" fit=" ...

  3. springmvc cfx 整合

    1.先看一下目录列表,本人用的是eclipse 2.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  4. css心得体会

    非块级元素  要使得其有长宽的效果  可以设置  margin  和  padding 块级元素     可以直接设置  width  和  height div标签   要使得你内部元素居中   可 ...

  5. android触控,先了解MotionEvent(一)

    http://my.oschina.net/banxi/blog/56421 这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要 ...

  6. KbmMW 4.5 发布

    We are happy to announce the release of kbmMW v. 4.50.00 Professional, Enterprise and CodeGear Editi ...

  7. 二进制搭建kubernetes多master集群【二、配置flannel网络】

    上一篇我们已经搭建etcd高可用集群,参考:二进制搭建kubernetes多master集群[一.使用TLS证书搭建etcd集群] 此文将搭建flannel网络,目的使跨主机的docker能够互相通信 ...

  8. 使用WebUploader客户端批量上传图片,后台使用springMVC接收实例

    使用WebUploader客户端批量上传图片,后台使用springMVC接收实例 我是搞Java后台的,因为最近主管让用webUploader写客户端,但是在网上找了很多,能够复制就能用的并没有几个, ...

  9. MAC安装远程工具Securecrt的破解方式(详细有图)

    想要实现mac的远程连接功能,本来想使用终端的,但是终端的很多功能是欠佳的,所以决定安装一款,像windows的xshell一样好的软件,所以选择了这款Securecrt. 首先准备两个东西,一个是S ...

  10. SPATIALINDEX_LIBRARY Cmake

    https://libspatialindex.org/ QGIS:https://github.com/qgis/QGIS/blob/master/cmake/FindSpatialindex.cm ...