Files

77 lines
1.6 KiB
Go

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))
}