我有一個udp套接字接收不同長度的數據報。 第一個數據報指定了要接收的數據類型,例如64-表示bool false,65-表示bool真,66-表示sint,67-表示int等等。由於大多數數據類型都有已知的長度,但是當涉及到字符串和wstring時,第一個字節表示85-means字符串,接下來的2個字節表示字符串長度後跟實際字符串。對於wstring 85,接下來的2個字節表示wstring的長度,後面跟着實際的wstring。字符串到蟒蛇wstring
要分析上面的那種關wstring的格式b'U\x00\x07\x00C\x00o\x00u\x00p\x00o\x00n\x001'
我用下面的代碼
data = str(rawdata[3:]).split("\\x00")
data = "".join(data[1:])
data = "".join(data[:-1])
這是正確的或任何其他簡單的方法?
當我收到數據報時,我還需要發送數據報。但我不知道如何創建數據報,因爲socket.sendto需要bytes
。如果我嘗試將字符串轉換爲utf-16
格式,它將轉換爲wstring。如果是的話我將如何添加其餘的信息爲bytes
從上面的數據報信息U
-85這是wstring的,\x00\x07
- 7長度wstring的數據,\x00C\x00o\x00u\x00p\x00o\x00n\x001
- 是實際的字符串Coupon1