Python打包一个struct-won';我不接受字符串参数
我有一段代码可以生成原始二进制数据包:Python打包一个struct-won';我不接受字符串参数,python,Python,我有一段代码可以生成原始二进制数据包: def sendPacket(self, sendSocket, recvName, recvPort, lostVal, message): packorder = 'iH?' + str(len(message.data)) + 's' print(packorder) raw_msg = pack(packorder, message.num, int(message.chk_sum), bool(message.isLas
def sendPacket(self, sendSocket, recvName, recvPort, lostVal, message):
packorder = 'iH?' + str(len(message.data)) + 's'
print(packorder)
raw_msg = pack(packorder, message.num, int(message.chk_sum), bool(message.isLast), message.data)
generate = random.randint(0, 10000) #random value to check if packet should be sent
if(lostVal > generate):
sendSocket.sendto(raw_msg, (recvName, recvPort)) #sending packet size to server
当我尝试运行它时,会出现以下错误:
raw_msg = pack(packorder, message.num, int(message.chk_sum),bool(message.isLast), message.data)
error: argument for 's' must be a string
packorder打印为:
iH?1024s
起初,我将packorder中的所有内容都原封不动地保存在文件中,但我认为如果我创建了它自己的变量,它就会改变
packorder是一个字符串,是否需要其他方式来显示值1024?消息的类型是什么。数据?它是一个字符串列表。使用
帮助(pack)
检查pack
方法的定义。您将看到s的论点是什么,以及它在您的案例中对应的内容。