我正在编写一个python文件服务器,并且希望能够接收缓冲区中的所有数据。因此,我制作了一个send函数来发送数据及其文件大小,但是当我发送数据时会出现属性错误。
我尝试绕过recv函数,但是无法正常工作,所以我决定发送发送数据的大小,并让服务器/客户端查看他们接收到了多少数据,以及是否小于他们被告知必须继续接收数据。
def getsizeof(data, tl=0):
for i in data:
data = sys.getsizeof(i)
tl += data
return tl
def send(conn, request):
length = getsizeof(request)
length_size = sys.getsizeof(length)
byte_size = length_size + length
###########################################################
request.insert(0, byte_size) # THIS IS WHERE I GET 'AttributeError: 'bytes' has no attribute 'insert'
###########################################################
conn.sendall(pickle.dumps(request)) # Encoding & sending data
print(total_length)
我遇到了属性错误,但是在修复该错误后,我认为它应该可以工作并接收缓冲区中的所有数据,并以发送数据的字节大小正确发送。