我正在使用谷歌的协议缓冲区将数据从客户端发送到服务器。
客户端和服务器都是用 Golang 编写的。
我认为它使用纯 tcp 将数据从发送client到server。
示例客户端代码:
func getFakeTransaction() *proto.Transaction {
transaction := new(proto.Transaction)
transaction.ClientId = "client_1"
transaction.ClientName = "Europa"
items := new(proto.Items)
items.ItemId = 1
items.ItemName = "Space suite"
items.ItemValue = 2000
transaction.Items = items
return transaction
}
func readDataFromExternalDatasource() *proto.Transaction {
return getFakeTransaction()
}
func sentDataToServer(data []byte) {
conn, err := net.Dial("tcp", "localhost:8080")
defer conn.Close()
if err != nil {
fmt.Fprintf(os.Stderr, "Error while dialing server: %s\n", err.Error())
return
}
sentBytes, err := conn.Write(data)
if err != nil {
fmt.Fprintf(os.Stderr, "Error sending bytes to serve: %s\n", err.Error())
return
}
fmt.Printf("Sent %d bytes\n", sentBytes)
}
func main() {
fmt.Println("Starting client..")
data := readDataFromExternalDatasource()
dataInByteArr, err := protoc.Marshal(data)
if err != nil {
fmt.Fprintf(os.Stderr, "Error while Marshal data: %s", err.Error())
}
for {
sentDataToServer(dataInByteArr)
time.Sleep(1000)
}
}
如何HTTP使用 Golang 中的协议缓冲区将数据从客户端发送到服务器?
慕斯709654
相关分类