首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python 3中通过套接字发送文件

在python 3中通过套接字发送文件
EN

Stack Overflow用户
提问于 2019-03-22 04:23:17
回答 1查看 1.3K关注 0票数 0

在下面的代码中,我尝试使用一台机器中的python套接字模块将图像发送到另一台机器。所以我有两个文件: client.py和Server.py

正如我弄清楚的,问题是当我在客户端机器上读取图像(以字节形式),然后服务器尝试接收文件时,当发送过程在接收过程之前完成时,客户端代码的第13行出现以下错误:

代码语言:javascript
复制
BrokenPipeError: [Errno 32] Broken pipe

我想找出这个错误是什么,以及为什么它会出现在我的代码中。

Server.py

代码语言:javascript
复制
import socket

host = '192.168.1.35'
port = 5000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)

while True:
    conn , addr = s.accept()
    data = conn.recv(1024)

    with open(r"C:\Users\master\Desktop\music.jpg",'wb') as f:
        f.write(data)
        # conn.send(b'done')
        data = conn.recv(1024)
        if not data:
            break
            conn.send(b'done')
    conn.send(b'done')
    conn.close()
s.close()

Client.py

代码语言:javascript
复制
import socket

def main():

    HOST = '192.168.1.35'  
    PORT = 5000

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    f = open('/home/taha/Desktop/f.jpg','rb')
    data = f.read()
    s.sendfile(f)
    if s.recv(1024) == b'done':
        f.close()

    s.close()

if __name__ == '__main__':
    main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 04:31:37

在客户端读取“done”之前,您正在关闭服务器连接

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55288707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档