lpackでバイナリファイルを作る

id:eggman:20080205:1202251800の続き。
luaにもpack/unpackのライブラリがあったので使ってみる。
使ってみたライブラリは、Luaの作者の一人でもあるlhfさんのlpackです。

#!/bin/env lua
require"pack"
bpack=string.pack

src_port=3088 dst_port=22 length=1200 crc=0xABCD

f=io.open("udph.bin", "wb")
f:write(bpack("HHHH", src_port, dst_port, length, crc))
f:close()
$ lua make_udp_header.lua ;hexdump udph.bin
0000000 0c10 0016 04b0 abcd
0000008

lpackをつかった方が、シンプルになって良いです。