本文整理匯總了Golang中github.com/ghedo/go/pkt/packet.Buffer.Bytes方法的典型用法代碼示例。如果您正苦於以下問題:Golang Buffer.Bytes方法的具體用法?Golang Buffer.Bytes怎麽用?Golang Buffer.Bytes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/ghedo/go/pkt/packet.Buffer
的用法示例。
在下文中一共展示了Buffer.Bytes方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Pack
// Pack packets into their binary form. This will stack the packets before
// encoding them (see the Compose() method) and also calculate the checksums.
func Pack(pkts ...packet.Packet) ([]byte, error) {
var buf packet.Buffer
base_pkt, err := Compose(pkts...)
if err != nil {
return nil, err
}
tot_len := int(base_pkt.GetLength())
buf.Init(make([]byte, tot_len))
for i := len(pkts) - 1; i >= 0; i-- {
cur_pkt := pkts[i]
cur_len := int(cur_pkt.GetLength())
buf.SetOffset(tot_len - cur_len)
buf.NewLayer()
err := cur_pkt.Pack(&buf)
if err != nil {
return nil, err
}
}
buf.SetOffset(0)
return buf.Bytes(), nil
}
示例2: Unpack
func (p *Packet) Unpack(buf *packet.Buffer) error {
buf.ReadN(&p.DSAP)
buf.ReadN(&p.SSAP)
if buf.Bytes()[:1][0]&0x1 == 0 ||
buf.Bytes()[:1][0]&0x3 == 0x1 {
buf.ReadN(&p.Control)
} else {
var ctrl uint8
buf.ReadN(&ctrl)
p.Control = uint16(ctrl)
}
return nil
}