package client import ( "context" "fmt" "log" "net" "codeberg.org/snonux/gorum/internal/iorw" "codeberg.org/snonux/gorum/internal/vote" ) func tcpClientRun(ctx context.Context, address string, ch <-chan vote.Vote) error { conn, err := net.Dial("tcp", address) if err != nil { return err } defer conn.Close() for { votes, ok := <-ch if !ok { return fmt.Errorf("channel closed - breaking tcpClientRun loop") } message, err := votes.ToJSON() if err != nil { return err } log.Println("tcpclient: sending", message, "to address", address) if err := iorw.WriteStr(conn, message); err != nil { return err } response, err := iorw.ReadStr(conn) if err != nil { return err } log.Println("tcpclient: received", response, "from address", address) } }