服務端的代碼可以參考: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)
}