47 lines
825 B
Go
47 lines
825 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func main() {
|
|
s, err := net.ResolveUDPAddr("udp4", "localhost:5000")
|
|
c, err := net.DialUDP("udp4", nil, s)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
|
|
fmt.Printf("The UDP server is %s\n", c.RemoteAddr().String())
|
|
defer c.Close()
|
|
|
|
// send json data
|
|
data := map[string]interface{}{
|
|
"name": "John",
|
|
"audioData": 30,
|
|
}
|
|
marshalledData, err := json.Marshal(data)
|
|
if err != nil {
|
|
logrus.Error("Error while marshalling data", err)
|
|
return
|
|
}
|
|
|
|
_, err = c.Write(marshalledData)
|
|
if err != nil {
|
|
logrus.Error("Error while writing data", err)
|
|
return
|
|
}
|
|
|
|
buffer := make([]byte, 1024)
|
|
n, _, err := c.ReadFromUDP(buffer)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
fmt.Printf("Reply: %s\n", string(buffer[0:n]))
|
|
}
|