Files
min-usage/ServerClientPullDemo/DemoPullClient/Client.go
T
2022-07-28 21:06:08 +08:00

75 lines
1.5 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: un used
//clientIdentifier, err := component.CreateIdentifierByString("/pkusz/wefree")
//if err != nil {
// fmt.Println("demo client: client identifier init error!")
// return
//}
//err = face.RegisterIdentifier(clientIdentifier, 5000)
//if err != nil {
// fmt.Println("demo client: register identifier init error!")
// return
//}
var seq uint64
seq = 0
// send
for true {
time.Sleep(3 * time.Second)
seq++
// serverIdentifier
serverIdentifier, err := component.CreateIdentifierByString("/pkusz/server")
if err != nil {
fmt.Println("demo client: server identifier init error!")
return
}
serverIdentifier.AppendFragmentNumber(seq)
// gppacket
pkt := new(packet.Interest)
pkt.SetName(serverIdentifier)
pkt.SetTTL(64)
pkt.SetValue([]byte("wefree" + strconv.FormatUint(seq, 10)))
err = face.SendInterest(pkt)
if err != nil {
fmt.Println("demo client: send error!")
continue
}
gpPkt, err := face.ReceiveData(5000)
if err != nil {
fmt.Println("demo client: receive data error!", err)
continue
}
fmt.Println("demo client: received data from server. the content is: ", byteToString(gpPkt.GetValue()))
}
}
func byteToString(bytes []byte) string {
return *(*string)(unsafe.Pointer(&bytes))
}