leaf protobuf demo例子

服務端的代碼可以參考:https://github.com/name5566/leaf/wiki/%E5%9C%A8-Leaf-%E4%B8%AD%E4%BD%BF%E7%94%A8-Protobuf

這裏面只貼客戶端的代碼:

package main

import (
	"encoding/binary"
	"fmt"
	"net"

	"github.com/golang/protobuf/proto"
)

func main() {
	conn, err := net.Dial("tcp", "127.0.0.1:3563")
	if err != nil {
		fmt.Println(err)
		return
	}
	msg := &Hello{
		Name: "protobuf widon",
	}
	b, err := proto.Marshal(msg)
	if err != nil {
		fmt.Println(err)
		return
	}
	//fmt.Println(len(b), string(b))
	m := make([]byte, 2+2+len(b))
	binary.BigEndian.PutUint16(m, uint16(2+len(b))) //len
	binary.BigEndian.PutUint16(m[2:], uint16(0))    //id
	copy(m[4:], b)

	conn.Write(m)
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章