Skip to content

Instantly share code, notes, and snippets.

@fmarcia
Last active November 11, 2017 14:14
Show Gist options
  • Save fmarcia/b8049f4146ed6af838cdaa43c0522aec to your computer and use it in GitHub Desktop.
Save fmarcia/b8049f4146ed6af838cdaa43c0522aec to your computer and use it in GitHub Desktop.
/**
* RASServer
*
* cf. https://ipfs.io/ipfs/QmfYeDhGH9bZzihBUDEQbCbTc5k5FZKURMUoUvfmc27BwL/socket/udp_datagrams.html
*/
package main
import (
"fmt"
"net"
"os"
)
func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, "Usage: %s ipaddress:port\n", os.Args[0])
os.Exit(1)
}
addr, err := net.ResolveUDPAddr("udp", os.Args[1])
check(err)
conn, err := net.ListenUDP("udp", addr)
check(err)
defer conn.Close()
buf := make([]byte, 1024)
for {
size, addr, err := conn.ReadFromUDP(buf)
if err == nil {
fmt.Printf("%s\t%s\n", addr, string(buf[0:size]))
} else {
fmt.Printf("Error: %s\n", err)
}
}
}
func check(err error) {
if err != nil {
fmt.Println("Error: ", err)
os.Exit(0)
}
}
/**
* send2ras - send a command to an RAS server
*/
package main
import (
"fmt"
"net"
"os"
)
func main() {
if len(os.Args) != 3 {
fmt.Fprintf(os.Stderr, "Usage: %s host:port message\n", os.Args[0])
os.Exit(1)
}
ServerAddr, err := net.ResolveUDPAddr("udp", os.Args[1])
checkError(err)
LocalAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0")
checkError(err)
Conn, err := net.DialUDP("udp", LocalAddr, ServerAddr)
checkError(err)
_, err = Conn.Write([]byte(os.Args[2]))
checkError(err)
}
func checkError(err error) {
if err != nil {
fmt.Println("Error: ", err)
}
}
@fmarcia
Copy link
Author

fmarcia commented Nov 10, 2017

go build -ldflags "-s"

@fmarcia
Copy link
Author

fmarcia commented Nov 11, 2017

@fmarcia
Copy link
Author

fmarcia commented Nov 11, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment