CloudlogUDP/CloudlogUDP.go
Gregory Salaun 283264a261 first commit
2023-11-29 11:02:30 +07:00

47 lines
943 B
Go

package main
import (
"fmt"
"log"
"net"
"strings"
"git.rouggy.com/CloudlogUDP/cloudlog"
"git.rouggy.com/CloudlogUDP/clublog"
"git.rouggy.com/CloudlogUDP/config"
"git.rouggy.com/CloudlogUDP/qrzcom"
"git.rouggy.com/CloudlogUDP/qso"
)
func main() {
fmt.Println("Loading config file...")
cfg := config.NewConfig()
fmt.Printf("Launching the server on port %v\n", cfg.UDP.Port)
udpServer, err := net.ListenPacket("udp", cfg.UDP.Port)
if err != nil {
log.Fatal(err)
}
defer udpServer.Close()
fmt.Printf("Server listening on port %v for incoming QSO\n", cfg.UDP.Port)
for {
buf := make([]byte, 4096)
_, _, err := udpServer.ReadFrom(buf)
if err != nil {
fmt.Println(err)
continue
}
msg := string(buf[:])
msgSplit := strings.Split(msg, "<")
qso := qso.NewQSO()
qso.ExtractQSOData(msgSplit)
cloudlog.SendCloudlogMsg(qso, cfg)
qrzcom.SendQRZcomlogMsg(qso, cfg)
clublog.SendClublogMsg(qso, cfg)
}
}