Python3x TypeError

时间:2018-12-10 01:23:39

标签: python-3.x typeerror

以下代码在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

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

1 个答案:

答案 0 :(得分:0)

由于错误状态,send需要一个类似字节的对象,而不是字符串。您可以encode()将字符串转换为字节,只是不要忘记在接收字符串的另一侧decode()