我运行这个脚本

# -*- coding: utf-8 -*-
import socket

def snd():
    a = ent.get()
    sock.send(a.encode())
    print("Отправка текста")
def sndfle():
    b = ent2.get()
    file = open(b, "rb")
    sock.send(file)
    print("Отправка файла")


sock = socket.socket()
sock.connect(('localhost', 25565))
print ("Соединение с сервером установлено")


我看到这个错误

    sock.send(file)
TypeError: a bytes-like object is required, not '_io.BufferedReader'


请帮我
我用按钮运行def。我藏起来

最佳答案

请参见this question

您需要从文件中获取字节,以便通过套接字发送它。试试这个:

def sndfle():
    b = ent2.get()
    with open(b, "rb") as file:
        for data in file:
            sock.sendall(data)
    print("Отправка файла")

关于python-3.x - TypeError:需要一个类似字节的对象,而不是'_io.BufferedReader',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45634315/

10-13 02:27