私は異なる長さのデータグラムを受け取ったudpソケットを持っています。 データグラムの最初のものは、受信しようとしているデータのタイプを指定します。たとえば、64はbool false、65はbool true、66はsint、67はintを意味します。ほとんどのデータ型は長さがわかっていますが、文字列とwstringについては、最初のバイトは85文字を意味し、次の2バイトは文字列の長さに続いて実際の文字列を示します。 wstring 85の場合、次の2バイトはwstringの長さを示し、その後に実際のwstringが続きます。 文字列をwstringにPython
は、私は次のコードdata = str(rawdata[3:]).split("\\x00")
data = "".join(data[1:])
data = "".join(data[:-1])
これが正しいか、他の簡単な方法ですが使用するフォーマットb'U\x00\x07\x00C\x00o\x00u\x00p\x00o\x00n\x001'
をwstringの上記の種類をオフに解析するには?
データグラムを受け取ったので、データグラムも送信する必要があります。しかし、socket.sendtoにはbytes
が必要なので、データグラムの作成方法はわかりません。文字列をutf-16
形式に変換しようとすると、wstringに変換されます。ので、どのように私はwstringのされて上記データグラム情報U
-85からbytes
に残りの情報を追加したい場合は、\x00\x07
- wstringのデータの7長、\x00C\x00o\x00u\x00p\x00o\x00n\x001
は - 実際の文字列Coupon1