import struct
stocks = [(0, '000001')]
stock_len = len(stocks)
pkgdatalen = stock_len * 7 + 12
values = (
0x10c,
0x02006320,
pkgdatalen,
pkgdatalen,
0x5053e,
0,
0,
stock_len,
)
pkg_header = struct.pack("<HIHHIIHH", *values)
pkg = bytearray(pkg_header)
for stock in stocks:
market, code = stock
if isinstance(code, str):
code = code.encode("utf-8")
one_stock_pkg = struct.pack("<B6s", market, code)
pkg.extend(one_stock_pkg)
print("📤 pytdx发送的请求包(模拟):")
print(f" 长度: {len(pkg)} 字节")
print(f" 前30字节(hex):")
for i in range(0, min(30, len(pkg)), 8):
end = min(i + 8, len(pkg))
hex_str = ' '.join(f'{b:02x}' for b in pkg[i:end])
print(f" 字节 {i:2d}-{end-1:2d}: {hex_str}")
print(f"\n struct.pack详情:")
print(f" 格式: <HIHHIIHH")
print(f" 值: {values}")
print(f" 包头长度: {len(pkg_header)} 字节")
print(f" pkgdatalen = {stock_len} * 7 + 12 = {pkgdatalen}")
print(f"\n 股票数据部分(从字节22开始):")
stock_start = 22
for i, (market, code) in enumerate(stocks):
start = stock_start + i * 7
end = start + 7
hex_str = ' '.join(f'{b:02x}' for b in pkg[start:end])
ascii_str = ''.join(chr(b) if 32 <= b < 127 else '.' for b in pkg[start:end])
print(f" 股票{i+1}: {hex_str} | {ascii_str}")
print(f" market={market}, code={code}")