Skip to content

Instantly share code, notes, and snippets.

@MilosSimic
Forked from miekg/udpserv.go
Created January 26, 2019 09:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MilosSimic/29908f623920fba55a721cedffe5e42f to your computer and use it in GitHub Desktop.
Save MilosSimic/29908f623920fba55a721cedffe5e42f to your computer and use it in GitHub Desktop.
Simple udp server in Go
package main
import (
"log"
"net"
)
func main() {
// listen to incoming udp packets
pc, err := net.ListenPacket("udp", ":1053")
if err != nil {
log.Fatal(err)
}
defer pc.Close()
for {
buf := make([]byte, 1024)
n, addr, err := pc.ReadFrom(buf)
if err != nil {
continue
}
go serve(pc, addr, buf[:n])
}
}
func serve(pc net.PacketConn, addr net.Addr, buf []byte) {
// 0 - 1: ID
// 2: QR(1): Opcode(4)
buf[2] |= 0x80 // Set QR bit
pc.WriteTo(buf, addr)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment