Tcp下载文件
一.下载文件
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下载文件的更多相关文章
- 7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)
看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧 先看这个节安装WEB服务器.....安装好以后就可以用HTTP访问电脑文件了 6-STM32物联网开发WIFI(ESP8266)+GPR ...
- 01_基于TCP的循环为同一个客户端下载文件的下载器
原版: TCP分为客户端(client)和服务器(server),每次服务器只能为客户端提供一次的下载服务. 改良版: TCP分为客户端(client)和服务器(server), (1)每次服务器能为 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(HTTP介绍,TCP实现HTTP下载文件)
https://www.cnblogs.com/yangfengwu/p/10357564.html 看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧 先看这个节安装WEB服务器.... ...
- 基于php下载文件的详解
本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下 php下载文件,比如txt文件. 出现的效果就是,弹出浏览器自带的下载框,出现另存为操作.有时候会出现内存溢出和超时的现象. 超时的话 ...
- linux FTP 批量下载文件
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理.wget名称的由来是“World Wide Web”与“ge ...
- JWebFileTrans: 一款可以从网络上下载文件的小程序(一)
一 摘要 JWebFileTrans是一款基于socket的网络文件传输小程序,目前支持从HTTP站点下载文件,后续会增加ftp站点下载.断点续传.多线程下载等功能.其代码已开源到github上面,下 ...
- WCF上传下载文件
思路:上传时将要上传的文件流提交给服务器端 下载时只需要将服务器上的流返回给客户端即可 1.契约,当需要传递的数量多于一个时就需要通过messagecontract来封装起来 这里分别实现了上传和下载 ...
- 下载文件的协议:HTTP、FTP、P2P
本篇学习笔记以HTTP.FTP.P2P叙述与网上下载文件有关的协议 需要掌握的要点: 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载 ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...
随机推荐
- dedecms的if标签、foreach标签
1.if标签 (1)下拉列表 <select name="prize_type[]" class="type J-prize-type" id=" ...
- 2. Get the codes from GIT
Clone the code from git.
- Jmeter中正则表达式不区分大小写进行匹配
(?i)<r i="([A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12})" ...
- 06 数据库入门学习-视图、sql注入、事务、存储过程
一.视图 1.什么是视图 视图本质是一张虚拟的表 2.为什么要用 为了原表的安全 只要有两大功能 1.隐藏部分数据,开放指定数据 2.视图可以将查询结果保存,减少sql语句的次数 特点: 1.视图使用 ...
- js 获取时间不能大于当前系统时间
var dataDate=$.trim($("#dataDate").val()); if(dataDate.length==0){ $("#dataDateTip&qu ...
- org.hibernate.HibernateException: /hibernate.cfg.xml not found等三个问题
初次配置hibernate在myeclipse上: 出现三个问题,怎么都不好使,比对代码,没有问题,查看路径还是没有问题: 1.org.hibernate.HibernateException: /h ...
- python 判断是否是空行或注释行
#coding:utf-8 '''''cdays-4-exercise-6.py 文件基本操作 @note: 文件读取写入, 列表排序, 字符串操作 @see: 字符串各方法可参考hekp(str)或 ...
- Google Map API申请
https://code.google.com/apis/console 当然需要先有个Google账户登录. 然后需要建一个项目. 然后根据package+sha1码获取密钥key 然后就可以创建凭 ...
- CreateDialog()与CreateDialogIndrect()
CreateDialog() 概述 函数功能:CreateDialog宏从一个对话框模板资源创建一个无模式的对话框,CreateDiaog宏使用CreateDialogParam函数. 函数原型:HW ...
- Codeforces777C Alyona and Spreadsheet 2017-05-04 17:46 103人阅读 评论(0) 收藏
C. Alyona and Spreadsheet time limit per test 1 second memory limit per test 256 megabytes input sta ...