2016-11-14 8 views
0

コードを実行しようとしているときに次のエラーが発生します。ここでは抜粋です。"AttributeError: 'bytes'オブジェクトに 'encode'属性がありません"

import time; 
from socket import* 
from pip._vendor.distlib.compat import raw_input 

pingCount = 0 
minTime = 0 
maxTime = 0 
counter = 0 
totalTime = 0 
message = 'test' 
packetsLost = 0 

#Sends 10 pingcounts as setup_testing_defaults 
while pingCount < 11: 
counter +=1 

#Creates a UDP Socket 
clientSocket = socket(AF_INET, SOCK_DGRAM) 

#Sets timeout value for each one to 1 second 
#The timeout function determines how long till it expires 
clientSocket.settimeout(1) 

#Creating the paramaters for sendTo 
#SendTo sends the ping to the socket 
clientSocket.sendto(message.encode("utf-8"),('127.0.0.1',12000))  

#time() yields the current time in milliseconds 
start = time.time() 

#Trying to print data received from the server 
try: #etc... 

のコードは、上記のエラーでクラッシュする前に、通常はほとんど3(繰り返しのカップルのために走る私はどんな提案は素晴らしいだろうので、何が起こっているか、あまりにもわからないんだけど、。おかげ

+0

を、 'message'はたぶん' bytes'型です。もちろん、エンコード方法はありません。 –

+0

このコードは私のために働く。多分それは試行後のコードですか? – Hugal31

+0

問題のコードがエラーを示さないという報告に基づいて投票を終了すること。また、インデントの問題があります。 'while'コマンドに続くコードは、実際に' while'ループに含まれるために別のレベルのインデントを必要とします。変更を加えなければ、コードはそこに構文エラーを投げます。 – jpmc26

答えて

0

それはおそらく、後でbytesオブジェクトにmessageを再割り当てされたコードで何か - !?もしそうなら、データはclientSocketを返され、おそらくあなたはそれをclientSocketから受信したデータを再割り当てしているがbytesオブジェクトであるとする必要がありますdecode dと同じように、message.encode()を使用してテキストを送信する方法daクライアントを介して

IO通信用bytesオブジェクトの使用法のかなり良い説明があります - あなたは物事やってのpython2.xのやり方に慣れている場合は特に - あなたのwhileループの第二または第三の繰り返しでhere

関連する問題