博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python socket文件传输
阅读量:7210 次
发布时间:2019-06-29

本文共 1566 字,大约阅读时间需要 5 分钟。

hot3.png

发送端:#!/usr/bin/python2.7#coding=utf-8import Tkinterimport tkFileDialogfrom socket import *import structimport osdef client(filename):        Addr=('127.0.0.1',8000)    BUFSIZE=1024    Sendsocket=socket(AF_INET,SOCK_STREAM)    Sendsocket.connect(Addr)    FileHead=struct.pack('128s11i',filename,0,0,0,0,0,0,0,0,os.stat(filename).st_size,0,0)    Sendsocket.send(FileHead)    fp=open(filename,'rb')    while 1:        FileData=fp.read(BUFSIZE)        if not FileData: break        Sendsocket.send(FileData)    fp.close()    Sendsocket.close()def FileOpen():    r = tkFileDialog.askopenfilename(title = 'Python Tkinter',              filetypes=[('All files', '*')] )    filename=r.split('/')    client(filename[-1])                                        root = Tkinter.Tk()button1 = Tkinter.Button(root, text = 'File Open', height=8,width=14,bg='blue',                                     command = FileOpen)button1.pack()root.mainloop()服务器端#!/usr/bin/python2.7# -*- coding: utf-8 -*-from socket import *import osimport structAddr=('127.0.0.1',8000)BUFSIZE=1024FileInfoSize=struct.calcsize('128s32sI8s')SocketRecv=socket(AF_INET,SOCK_STREAM)SocketRecv.bind(Addr)SocketRecv.listen(5)print "waitting ........"conn,addr=SocketRecv.accept()print "send from" ,addrFileHead=conn.recv(FileInfoSize)filename,temp1,filesize,temp2=struct.unpack('128s32sI8s',FileHead)print filename,len(filename),type(filename)print filesizefilename='new_'+filename.strip('\00')fp = open(filename,'wb')restsize=filesizewhile 1:        if restsize

转载于:https://my.oschina.net/annieduoduo/blog/71382

你可能感兴趣的文章
在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?
查看>>
移动端适配之二:visual viewport、layout viewport和ideal viewport介绍
查看>>
python大佬养成计划----flask_sqlalchemy操作数据库
查看>>
Chrome开发者工具关于网络请求的一个隐藏技能
查看>>
Git入门与开发
查看>>
Java编程基础04——流程控制语句
查看>>
vue-threeJS数据驱动的三维图形可视化
查看>>
Ubuntu 18.04.1 搭建Java环境和HelloWorld
查看>>
Flutter 实现根据环境加载不同配置
查看>>
浏览器保存密码后自动填充问题
查看>>
前端每日实战:93# 视频演示如何用纯 CSS 创作一根闪电连接线
查看>>
PhpStorm升级后调用某些类提示phpstorm Unhandled exceptions
查看>>
Python 2.x 与 Python 3.x 的区别
查看>>
如何实现对tcl脚本的类GDB调试
查看>>
基于java的IO流的文件读取系统
查看>>
谈谈 Docker 网络
查看>>
laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
查看>>
伪数组(ArrayLike)
查看>>
ES6精华:字符串扩展
查看>>
写在Flutter 1.0之前
查看>>