Skip to content

Instantly share code, notes, and snippets.

@habibiefaried
Last active June 15, 2024 11:31
Show Gist options
  • Save habibiefaried/f45f61ee5abb178deb16db8dc667707d to your computer and use it in GitHub Desktop.
Save habibiefaried/f45f61ee5abb178deb16db8dc667707d to your computer and use it in GitHub Desktop.
UDP server & client
package main
import (
"fmt"
"net"
)
func main() {
serverAddr := net.UDPAddr{
Port: 8080,
IP: net.ParseIP("127.0.0.1"),
}
conn, err := net.DialUDP("udp", nil, &serverAddr)
if err != nil {
fmt.Println("Error connecting to server:", err)
return
}
defer conn.Close()
message := "Hello from client!"
_, err = conn.Write([]byte(message))
if err != nil {
fmt.Println("Error sending message:", err)
return
}
fmt.Println("Sent to server:", message)
buffer := make([]byte, 1024)
n, _, err := conn.ReadFromUDP(buffer)
if err != nil {
fmt.Println("Error reading from server:", err)
return
}
response := string(buffer[:n])
fmt.Println("Received from server:", response)
}
package main
import (
"fmt"
"net"
)
func main() {
addr := net.UDPAddr{
Port: 8080,
IP: net.ParseIP("0.0.0.0"),
}
conn, err := net.ListenUDP("udp", &addr)
if err != nil {
fmt.Println("Error starting server:", err)
return
}
defer conn.Close()
fmt.Println("Server is listening on port 8080")
buffer := make([]byte, 1024)
for {
n, clientAddr, err := conn.ReadFromUDP(buffer)
if err != nil {
fmt.Println("Error reading from connection:", err)
}
message := string(buffer[:n])
fmt.Println("Received from client:", message)
response := "Hello from server!"
_, err = conn.WriteToUDP([]byte(response), clientAddr)
if err != nil {
fmt.Println("Error writing to connection:", err)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment