commit 72ad1ff2d06c179983d14f27b6981e618fae107d Author: talksik Date: Sun Oct 8 12:40:06 2023 -0700 adding in main logic for ping pong diff --git a/client/main.go b/client/main.go new file mode 100644 index 0000000..57473dc --- /dev/null +++ b/client/main.go @@ -0,0 +1,65 @@ +package main + +import ( + "fmt" + "net" + "time" +) + +func main() { + serverAddr := "72.194.77.242:5000" // Change this to your server's address and port + // Create a UDP address structure to resolve the server address + serverUdpAddr, err := net.ResolveUDPAddr("udp", serverAddr) + if err != nil { + fmt.Println("Error resolving address:", err) + panic(err) + } + + localAddr, err := net.ResolveUDPAddr("udp", "0.0.0.0:5001") + if err != nil { + fmt.Println("Error resolving address:", err) + panic(err) + } + + // Create a UDP connection + conn, err := net.ListenUDP("udp", localAddr) + if err != nil { + fmt.Println("Error creating UDP connection:", err) + panic(err) + } + defer conn.Close() + + go func() { + fmt.Println("CLIENT | listening on", conn.LocalAddr()) + + for { + // read + buf := make([]byte, 512) + n, addr, err := conn.ReadFromUDP(buf) + if err != nil { + panic(err) + } + + fmt.Println("CLIENT | received message from ", addr.IP, ":", addr.Port, " with n: ", n) + } + }() + + // Message to send + message := []byte("Hello server, I am the client!") + + go func() { + for { + // write + _, err = conn.WriteToUDP(message, serverUdpAddr) + if err != nil { + panic(err) + } + + // sleep for 5 seconds + time.Sleep(5 * time.Second) + } + }() + + // wait + select {} +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..2946e46 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module github.com/talksik/udp-ping-pong + +go 1.21.1 diff --git a/server/main.go b/server/main.go new file mode 100644 index 0000000..1198ae4 --- /dev/null +++ b/server/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "net" +) + +func main() { + // udp listen + conn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 5000}) + if err != nil { + panic(err) + } + + for { + // read + buf := make([]byte, 512) + n, addr, err := conn.ReadFromUDP(buf) + if err != nil { + panic(err) + } + + fmt.Println("SERVER | received message from ", addr) + + // write + _, err = conn.WriteToUDP(buf[:n], addr) + + if err != nil { + panic(err) + } + } + +}