首页 > 编程语言 >python发送文件

python发送文件

时间:2023-06-15 14:44:14浏览次数:58  
标签:文件 socket python sock send 发送 time data size

 

 

发送端

import socket
import os
import time
filename = input('please enter the filename you want to send:\n')
filesize = str(os.path.getsize(filename))
fname1, fname2 = os.path.split(filename)
client_addr = ('127.0.0.1',9999)
f = open(filename,'rb')
count = 0
flag = 1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#建立连接:
s.connect(('127.0.0.1', 9999))
while True:
    if count == 0:
        s.send(filesize.encode())
        start = time.time()
        s.recv(1024)
        s.send(fname2.encode())
    for line in f:
        s.send(line)
        print('sending...')
    s.send(b'end')
    break

s.close
end = time.time()
print('cost' + str(round(end - start, 2)) + 's')

  

 

接收端

import socket
import time

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1',9999))
s.listen(5)
print('Waiting for connection...')
count=0
while True:
    sock,addr = s.accept()
    print('Accept new connection from %s:%s...' % addr)
    if count == 0:
        data1 = sock.recv(1024)
        print(str(data1))
        file_total_size = int(data1.decode())
        received_size = 0
        sock.send('received'.encode())
        data = sock.recv(1024)
        filepath = str(data.decode())
        f = open(filepath, 'wb')
    while received_size < file_total_size:
        data = sock.recv(1024)
        f.write(data)
        received_size += len(data)
        print('已接收 ',received_size,' Byte')
    data = sock.recv(1024)
    if data == b'end':
        break
        
f.close()
s.close()

  

发送端输入

send/测试文档.docx

 

接收端保存在

 

标签:文件,socket,python,sock,send,发送,time,data,size
From: https://www.cnblogs.com/gooutlook/p/17482818.html

相关文章

  • python 调试pdb
    python调试pdbimportpdb;pdb.set_trace()这是一个Python代码中的调试技巧,用于在代码中插入一个断点,以便在程序执行到这个位置时,暂停程序并进入调试模式。具体来说,importpdb;pdb.set_trace()这行代码会导入Python标准库中的pdb模块,并在当前位置插入一个断点。在程序执行到......
  • C语言文件操作函数open、write用法速记
    以前一直都是用fopen、fwrite等高级函数写文件,这次尝试用open、write、close操作文件。代码如下:intret=OB_SUCCESS;intfd=open(config_file,O_WRONLY|O_CREAT|O_TRUNC,S_IRWXU|S_IRWXG|S_IRWXO);staticconstint64_tbuf_len=512;int64_......
  • WinCE下的文件路径
    在WinCE下,不能用相对路径,必须用绝对路径(FullPath) 来定位文件。如,在ProgramFiles/TestProgram目录下的abc.txt文件,只能用ProgramFiles/TestProgram/abc.txt来定位,而不能用abc.txt定位。如:privatevoidbutton1_Click(objectsender,EventArgse){stringp......
  • Qt Qdebug 实现重定向到文件
    #include<QtCore/QCoreApplication>#include<QtCore/QDebug>#include<QtCore/QFile>#include<QtCore/QTextStream>//自定义消息处理函数voidmyMessageHandler(QtMsgTypetype,constchar*msg){   //打开输出文件   QFilefile("debug.log");   ......
  • python 检测免费代理ip是否有效
    python检测免费代理ip是否有效,免费ip获取地址https://www.zdaye.com/free/importrequestsIPAgents=["218.89.51.167:9091","120.37.121.209:9091","113.195.207.249:9091","113.195.207.249:9091","111.47.17......
  • C++ 文件和流
     到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到C++中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类......
  • 打开文件
     在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。下面是open()函数的标准语法,open()函数是fstream、ifstream和ofstream对象的一个成员。https......
  • Python Pandas教程:DataFrames入门
    Pandas是一个开源Python库,它在Python编程中提供数据分析和操作。它是数据表示,过滤和统计编程中非常有前途的库。Pandas中最重要的部分是DataFrame,您可以在其中存储和播放数据。在本教程中,您将了解DataFrame是什么,如何从不同的源创建它,如何将其导出到不同的输出,以及如何操作其数据。......
  • 关于服务器上部署war后怎么配置读取外部的yml文件
    第一步打成war包1.pom.xml修改为<packaging>war</packaging>2.然后就是依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope&g......
  • 批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)
    云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据、计算资源和时间等资源,并且对超参数的调整也要求较高,更适合在云端进行。在推理阶段,模型的权重和参数不再调整。相反,模型根据输入数据的特征......