python,socket通信编程,文件上传例子

写一个file_receive.py和一个file_send.py程序,由file_send.py上传一个文件,file_receive.py接收上传的文件,写到指定的包内

#file_receive.pyimport socket,subprocess,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sk = socket.socket()
address = (‘127.0.0.1‘,8001)
sk.bind(address)
sk.listen(3)
conn,addr = sk.accept()
fileinfo = conn.recv(1024)
filename,filesize = str(fileinfo,‘utf8‘).split(‘|‘)
#filename = str(filename,‘utf8‘)
#filesize = int(str(filesize,‘utf8‘))
path = os.path.join(BASE_DIR,‘file_recv‘,filename)
f = open(path,‘wb‘)
has_received = 0
while has_received != int(filesize):
    data = conn.recv(1024)
    f.write(data)
    has_received += len(data)

f.close()
print(‘well done‘)
sk.close()
#file_send.py
import socket,os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sk = socket.socket()
address = (‘127.0.0.1‘,8001)
sk.connect(address)
filename = input("please input filename:")
path = os.path.join(BASE_DIR,filename)
filesize = os.stat(path).st_size
fileinfo = ‘%s|%s‘%(filename,str(filesize))
sk.sendall(bytes(fileinfo,‘utf8‘))

f = open(path,‘rb‘)

has_sent = 0
while has_sent != int(filesize):
    data = f.read(1024)
    sk.sendall(data)
    has_sent += len(data)

print(‘well done!‘)
f.close()
sk.close()

文件运行后,实现了将file_send.py上传的test.png文件上传到当前路径下的file_recv包内.

原文地址:https://www.cnblogs.com/iceberg710815/p/12034518.html

时间: 2024-11-05 14:56:13

python,socket通信编程,文件上传例子的相关文章

jfinal初接触,一个简单的文件上传例子

写了个上传的小例子. 从jfinal官网下载jfinal-1.8_demo_for_jsp.zip 然后下载jfinal-1.8-lib.zip 按要求删掉该删除的,引入一些包,之后的项目结构: DemoConfig.java中配置路由,只留下了根路径: /** * 配置路由 */ public void configRoute(Routes me) { me.add("/", CommonController.class); //me.add("/blog", B

多线程 网络编程 文件上传案例多线程

Day13 多线程 3).多线程的好处: 提高程序的运行效率,提高用户的体验度. 创建新的线程: *    定义类继承Thread *    重写方法run *    创建Thread子类的对象 *    调用子类对象的方法 start() * *  为什么继承Thread *    Thread类是线程对象类 *    继承了Thread,子类也是线程对象 * *  为什么重写run *    Sun工程师,不清楚其他人员用线程做什么 *    全部写在run中 * *  为什么调用start

python+selenium+autoit实现文件上传

问题 在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下 解决方案 第一种:type=file的上传文件,类似如下的 使用类似这样的代码就可以完成: driver.find_element('name','file').send_keys('./小强测试品牌.png') 第二种:就是第一种除外的,实现起来较为麻烦,这里用到了autoit,大致步骤如下: 1.下载并安装autoit,之后在开始菜单可以看到如下 AutoIt Windows Info 用于识别Windo

java 文件上传例子

现在要处理一些CSV格式的数据,就想着把文件上载到服务器上,然后导入mysql,再做后续的处理. 用到了JKD1.7,Servlet 3.0 和 tomcat 7.0.由于Servlet 3.0直接支持文件上传,直接调用方法就好了. 还有一个官方的教程. http://docs.oracle.com/javaee/7/tutorial/doc/servlets016.htm#BABDGFJJ. 按着这个做基本就可以了,但是有两点需要注意: 1 我用的IDE是eclipse,eclipse在运行的

python接口自动化7-post文件上传

前言 文件上传在我们软件是不可少的,最多的使用是体现在我们后台,当然我们前台也会有.但是了解过怎样上传文件吗?这篇我们以禅道文档-创建文档,上传文件为例. post请求中的:Content-Type:multipart/form-data  这种类型便是上传文件. 一.环境安装.抓包分析 1.pip install requests_toolbelt,post请求 multipart/form-data  类型 C:\Users\Administrator>pip install request

PHP核心编程--文件上传(包含多文件上传)

一.单文件上传 图片上传界面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form name='frm'action="./uploadSave.php" method="p

Struts2文件上传例子

一.首先搭建Struts框架 第一步:引入Strusts2所必须的jar包 第二步:创建并配置web.xml文件,在其中配置Struts2的核心过滤器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns

ajaxFileUpload+springmvc文件上传例子

//文件上传页面 <div > <input type="file" id="file" name="file" onchange="ajaxFileUpload();"/> <input type="hidden" id="pic" name="pic" /> </div> //ajax 实现文件上传 function

SpringMVC学习总结(五)——SpringMVC文件上传例子

这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/20