强制转换为Unicode:需要字符串或缓冲区,找到元组。任何人?

时间:2017-01-12 21:08:42

标签: python unicode

   while(i<=9):
        proto_actual=lista[i][0]
        puerto_actual=lista[i][1]
        if("UDP" in proto_actual):
            udp1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            udp1.sendto("toc,toc", (host,int(puerto_actual)))
            udp1.close()
            i=i+1
        else:
            tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            print "Socket creado"
            tcp1.sendto("toc,toc", (host,int(puerto_actual)))
            tcp1.close()
            print "hola"
            i=i+1

任何人都可以帮助我吗?我明白了:

File "cliente.py", line 43, in <module>
   udp1.sendto("toc,toc"+ (host,int(puerto_actual)))
TypeError: cannot concatenate 'str' and 'tuple' objects

我没有看到代码有任何问题。 我正在做一个像端口敲门的程序。 谢谢!

1 个答案:

答案 0 :(得分:2)

这是由于您在此处未共享的行中的错误,或者可能是您正在使用的代码中的拼写错误(但最终在此处共享时进行了更正)。正如错误消息所示,问题出在以下行:

udp1.sendto("toc,toc"+ (host,int(puerto_actual)))
#                    ^ replace with ,

此处"toc,toc" +表示您希望将str与元组对象(host,int(puerto_actual)连接起来,这不是有效的操作。要解决此问题,请使用逗号+

替换,