2016-09-02 4 views
-3

私はファイル共有プログラムを作ろうとしているので、ファイルをreadbinaryで開き、読み込み、接続を確立して、バイトをバイトに送信しようとします。" x" + *はどのように機能しますか?

b"\x" + (encoded bytes of the int from dataread[i])はどのように送信できますか?

私はいつも私にエラーを与えます、それがうまくいかない場合は、どうすれば正確にバイトを読み取ることができますか?私はintを取得しないように? (dataread[0]のように、値が"\x01"の場合、1になります)。

マイコード:

for g in range(len(datar)): 
    esc = str(datar[g]) 
    if len(esc) == 1: 
     esc = "0"+esc 
    esc = "\x"+bytes(esc,"utf8") 
    c.send(esc) 
    c.recv(500) 
    print(g,"Bytes von",len(datar),"gesendet") 

答えて

2

'\xhh'表記のみ文字列またはバイトリテラルで動作します。あなたは整数を持っている場合は、単にリストにbytes()オブジェクトにこれを渡します

bytes(dataread) # if dataread is a list of integers 

または

bytes([dataread]) # if dataread is a single integer 

bytesオブジェクトは、整数値の列、0〜255の範囲にそれぞれ限定されています。

for byte in datar: 
    c.send(bytes([esc])) 
    c.recv(500) 

print(g,"Bytes von",len(datar),"gesendet") 
:に変換こと、 datarから個々のバイトを送信するために

関連する問題