首页 文章

Python3x TypeError

提问于
浏览
0

以下代码适用于Python 2.7.x但不适用于Python 3.x(类似于字节的对象不是str)我错过了什么?有没有更好的方法为Python3做这个?

def vsend(self, framestring):
    totalsent = 0
    metasent = 0
    length =len(framestring)
    lengthstr=str(length).zfill(8)

    while metasent < 8 :

        sent = self.sock.send(lengthstr[metasent:])
        if sent == 0:
            raise RuntimeError("Socket connection broken")
        metasent += sent


    while totalsent < length :
        sent = self.sock.send(framestring[totalsent:])
        if sent == 0:
            raise RuntimeError("Socket connection broken")
        totalsent += sent

错误:sent = self.sock.send(lengthstr [metasent:])TypeError:需要类似字节的对象,而不是'str'[WARN:0]终止异步回调

1 回答

  • 0

    正如错误所述, send 需要一个类似字节的对象,而不是字符串 . 您可以通过encode()将它转换为字节,只是不要忘记接收它的另一边的decode() .

相关问题