我有一些应该生成原始二进制数据包的代码:
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的值吗?