feat: Initial revision

This commit is contained in:
Adrian Rumpold
2022-07-04 06:51:34 +02:00
commit 0054a2d9ae
13 changed files with 468 additions and 0 deletions

42
pkg/net/client.go Normal file
View File

@@ -0,0 +1,42 @@
package net
import (
"bytes"
"encoding/json"
"net"
"github.com/AdrianoKF/go-clip/pkg/model"
)
type Client struct {
addr net.UDPAddr
handler HandlerFunc
}
func NewClient(addr net.UDPAddr, handler HandlerFunc) *Client {
instance := &Client{
addr,
handler,
}
return instance
}
func (c Client) SendEvent(msg model.ClipboardUpdated) error {
conn, err := net.DialUDP("udp4", nil, &c.addr)
if err != nil {
return err
}
defer conn.Close()
buf := make([]byte, 0)
w := bytes.NewBuffer(buf)
encoder := json.NewEncoder(w)
encoder.Encode(msg)
_, err = conn.Write(w.Bytes())
if err != nil {
return err
}
return nil
}