python 2.6 socket 实现文件下载

前端请求 ip:12345/1.pdf 可下载服务器文件: /usr/1.pdf
如果文件不存在,等待 61

#!/usr/bin/python
# -*- coding: UTF-8 -*-

## 设定端口
port = 12345                
## 文件根目录
p = '/usr'
## 等待时长,单位秒
w = 61

import os
import socket               
import threading
import socket
import time
import operator
import os
import struct
import time
s = socket.socket()         
host = socket.gethostname() 
s.bind((host, port))        

# 等待客户端连接
s.listen(5) 

while True:
    # 建立客户端连接。
    c, addr = s.accept()
    print '连接地址:', addr
    data = c.recv(1024).decode();
    if data:
        print data
        a = data.split(' HTTP')[0]
        b = a.split('GET ')[1]
        print b
        pf = p + b
        count = 0
        while (count<w):
            e = os.path.exists(pf)
            if e:
                print '存在'
                fp = open(pf, "rb")
                file_size = os.stat(pf).st_size
                print file_size
                c.send((str(file_size)).encode())
                for line in fp:
                    print line
                    c.send(line)
                fp.close()
                print "send done"
                break
            else:
                print '不存在'
                count = count + 1
                time.sleep(1)
    c.close()                

转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:python 2.6 socket 实现文件下载

字数:215

本文作者:夏来风

发布时间:2020-08-04, 20:27:01

原始链接:http://www.demo1024.com/blog/python-socket/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。