package main import ( "fmt" "minlib/component" "minlib/logicface" "minlib/packet" "strconv" "time" "unsafe" ) func main() { // face face := logicface.NewLogicFace() err := face.InitWithTcp("192.168.230.131", 13899) if err != nil { fmt.Println("demo client: face init error!") return } // register clientIdentifier, err := component.CreateIdentifierByString(ClientPrefix) if err != nil { fmt.Println("demo client: client identifier init error!") return } err = face.RegisterPushIdentifier(clientIdentifier, 5000) if err != nil { fmt.Println("demo client: register identifier init error!") return } // seq seq := new(pSeq) seq.seq = 0 // send for true { time.Sleep(3 * time.Second) num := seq.GetNewSeq() // serverIdentifier serverIdentifier, err := component.CreateIdentifierByString(ServerPrefix) if err != nil { fmt.Println("demo client: server identifier init error!") return } serverIdentifier.AppendFragmentNumber(num) // gppacket pkt := new(packet.GPPkt) pkt.SetDstIdentifier(serverIdentifier) pkt.SetSrcIdentifier(clientIdentifier) pkt.SetTTL(64) pkt.SetValue([]byte("wefree" + strconv.FormatUint(num, 10))) err = face.SendGPPkt(pkt) if err != nil { fmt.Println("demo client: send error!") continue } gpPkt, err := face.ReceiveGPPkt(5000) if err != nil { fmt.Println("demo client: receive error!", err) continue } fmt.Println("demo client: received data from server. content is: ", byteToString(gpPkt.GetValue())) } } func byteToString(bytes []byte) string { return *(*string)(unsafe.Pointer(&bytes)) }