包装结构的Python不接受字符串参数

时间:2017-04-17 06:20:07

标签: 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.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是一个字符串,我需要一种不同的方式来显示1024的值吗?

0 个答案:

没有答案