summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorbt <bt@rctt.net>2026-03-09 01:11:13 +0100
committerbt <bt@rctt.net>2026-03-09 22:52:52 +0100
commit077dde28324f42b96239075ada289a58197dc951 (patch)
tree4889aee82e8ea8efeeb141f2a98aeb089fff1798 /cmd
parentcfcb226d3834c00414f4aa57b8f94060b45bb072 (diff)
downloadsolec-077dde28324f42b96239075ada289a58197dc951.tar.gz
solec-077dde28324f42b96239075ada289a58197dc951.zip
Improve protocol format
Diffstat (limited to 'cmd')
-rw-r--r--cmd/client/main.go14
-rw-r--r--cmd/daemon/main.go16
-rw-r--r--cmd/test/main.go34
3 files changed, 44 insertions, 20 deletions
diff --git a/cmd/client/main.go b/cmd/client/main.go
index a229632..8bb1c24 100644
--- a/cmd/client/main.go
+++ b/cmd/client/main.go
@@ -23,17 +23,19 @@ func main() {
}
defer conn.Close()
- go ping(conn)
- if err := core.Loop(conn); err != nil {
- log.Fatal("event loop error ", err)
- }
+ ping(conn)
}
func ping(conn net.Conn) {
for {
log.Print("ping")
- p := core.Ping{}
- core.Send(conn, core.TypePing, p)
+ data, err := core.Encode(core.Ping{})
+ if err != nil {
+ panic(err)
+ }
+ if _, err := conn.Write(data); err != nil {
+ panic(err)
+ }
time.Sleep(time.Second)
}
}
diff --git a/cmd/daemon/main.go b/cmd/daemon/main.go
index b344caf..b55cc69 100644
--- a/cmd/daemon/main.go
+++ b/cmd/daemon/main.go
@@ -31,21 +31,9 @@ func listen() error {
if err != nil {
log.Print("cannot accept connection: ", err)
}
- go handle(conn)
- }
-}
-
-func handle(conn net.Conn) {
- log.Print("received connection from: ", conn.RemoteAddr())
- hs := core.Handshake{Version: 0x0}
-
- if err := core.Send(conn, core.TypeHandshake, hs); err != nil {
- log.Print("cannot send handshake ", err)
- return
- }
+ log.Print("received connection from: ", conn.RemoteAddr())
- if err := core.Loop(conn); err != nil {
- log.Fatal("event loop error ", err)
+ go core.ReadConnection(conn)
}
}
diff --git a/cmd/test/main.go b/cmd/test/main.go
new file mode 100644
index 0000000..e580b63
--- /dev/null
+++ b/cmd/test/main.go
@@ -0,0 +1,34 @@
+package main
+
+import (
+ "fmt"
+ "time"
+
+ "git.sr.ht/~rctt/solecd/core"
+)
+
+func main() {
+ in := core.Test{
+ Num1: 1,
+ Time1: time.Now(),
+ Str1: "test string",
+ Num2: 2,
+ Bin1: []byte{0x01, 0x02, 0x03},
+ Num3: 3,
+ Str2: "こんにちは",
+ Num4: 4,
+ }
+
+ data, err := core.Encode(in)
+ if err != nil {
+ panic(err)
+ }
+
+ fmt.Printf("% X\n", data)
+ out, err := core.Decode(data)
+ if err != nil {
+ panic(err)
+ }
+
+ fmt.Printf("%+v\n", out)
+}