2017-01-12 4 views
-3
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 

どのような体は私を助けることができますか?私はこれを持っています:Unicodeに強制する:必要な文字列またはバッファ、タプルが見つかりました。誰ですか?

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

と私はコード上の問題は表示されません。 私はポートノッキングのようなプログラムをやっています。 ありがとう!

+0

「udp1.sendto」にはいくつの引数がありますか? –

+2

あなたが間違ったコードを書いているようです - エラーが表示されるので 'toc、toc" +(host、int(puerto_actual) ')はありません。 – furas

答えて

2

ここで共有していない行のエラーや、使用しているコードの入力ミスの可能性があります(ただし、ここで共有している間に修正されます)。エラーメッセージが言うように、問題はラインである:

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

ここ"toc,toc" +あなたは有効な操作でないタプルオブジェクト(host,int(puerto_actual)strを連結することを意味します。これを修正するには、+をカンマで置き換えてください。,

関連する問題