Обновление: Итак, я решил это, и я задумался над тем, что нужно сделать.
Я просто написал переменную UInt в необработанном виде, и это помогло.
write(pcap, rec.orig_len) #this is a UInt32
write(pcap, rec.payload) #this is a UInt8 vector
Оригинал: мне было трудно сделать мой предыдущий комментарий читабельным.
Спасибо за ответ.Тем не менее, я не могу заставить переосмыслить работать с моей переменной UInt32.
a = reinterpret(UInt8, rec.ts_usec) |> Vector
ERROR: bitcast: argument size does not match size of target type
Stacktrace:
[1] reinterpret(::Type{UInt8}, ::UInt32) at .\essentials.jl:370
[2] top-level scope at none:0
typeof(rec.ts_usec)
UInt32
После того, как я еще немного возился, я смог заставить это работать, но это не очень эффективно.
«Редактировать» Я только что обнаружил, что это не сработает, поскольку оно обрезает все ведущие нули в UInt32.Пример rec.incl_len = 0x00000516 будет выглядеть как «516» вместо «00000516», что необходимо.
julia> hex(n) = string(n, base = 16, pad = 2)
julia> a = hex2bytes(hex(rec.ts_sec))
4-element Array{UInt8,1}:
0x5b
0x60
0xa3
0xa1