當前位置: 首頁>>代碼示例>>Golang>>正文


Golang PacketReader.ReadString8方法代碼示例

本文整理匯總了Golang中github.com/spinlock/xserver/pkg/xserver/xio.PacketReader.ReadString8方法的典型用法代碼示例。如果您正苦於以下問題:Golang PacketReader.ReadString8方法的具體用法?Golang PacketReader.ReadString8怎麽用?Golang PacketReader.ReadString8使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/spinlock/xserver/pkg/xserver/xio.PacketReader的用法示例。


在下文中一共展示了PacketReader.ReadString8方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: parseFlowRequest

func parseFlowRequest(r *xio.PacketReader) (*flowRequest, error) {
    var err error
    flags := uint8(0)
    if flags, err = r.Read8(); err != nil {
        return nil, errors.New("flow.read flags")
    }
    fid := uint64(0)
    if fid, err = r.Read7BitValue64(); err != nil {
        return nil, errors.New("flow.read fid")
    }
    stage, delta := uint64(0), uint64(0)
    if stage, err = r.Read7BitValue64(); err != nil {
        return nil, errors.New("flow.read stage")
    }
    if delta, err = r.Read7BitValue64(); err != nil {
        return nil, errors.New("flow.read delta")
    }
    signature := ""
    if (flags & flagsHeader) != 0 {
        if signature, err = r.ReadString8(); err != nil {
            return nil, errors.New("flow.read signature")
        }
        for {
            if size, err := r.Read8(); err != nil {
                return nil, errors.New("flow.read header content size")
            } else if size == 0 {
                break
            } else if n := int(size); n > r.Len() {
                return nil, errors.New("flows.too big header content size")
            } else if err = r.Skip(n); err != nil {
                return nil, errors.New("flows.skip header")
            }
        }
    }
    data := r.Bytes()
    req := &flowRequest{}
    req.fid = fid
    req.signature = signature
    req.stage = stage
    req.stageack = stage - delta
    req.slices = make([]*flowRequestSlice, 0, 4)
    req.AddSlice(&flowRequestSlice{flags, data})
    return req, nil
}
開發者ID:Yuhang,項目名稱:xserver,代碼行數:44,代碼來源:request.go


注:本文中的github.com/spinlock/xserver/pkg/xserver/xio.PacketReader.ReadString8方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。