Multicast test utility

This commit is contained in:
Jakob Borg 2014-05-11 18:43:25 -03:00
parent e4f266883a
commit b783169c72
2 changed files with 38 additions and 1 deletions

View File

@ -86,7 +86,13 @@ func (b *Beacon) run() {
if debug {
dlog.Printf("recv %d bytes from %s on %s", n, addr, dst.intf)
}
b.outbox <- recv{bs[:n], addr}
select {
case b.outbox <- recv{bs[:n], addr}:
default:
if debug {
dlog.Println("Dropping message")
}
}
}
}()
}

31
mc/cmd/mctest/main.go Normal file
View File

@ -0,0 +1,31 @@
package main
import (
"encoding/binary"
"log"
"time"
"github.com/calmh/syncthing/mc"
)
func main() {
b := mc.NewBeacon("239.21.0.25", 21025)
go func() {
for {
bs, addr := b.Recv()
log.Printf("Received %d bytes from %s: %x %x", len(bs), addr, bs[:8], bs[8:])
}
}()
go func() {
bs := [16]byte{}
binary.BigEndian.PutUint64(bs[:], uint64(time.Now().UnixNano()))
log.Printf("My ID: %x", bs[:8])
for {
binary.BigEndian.PutUint64(bs[8:], uint64(time.Now().UnixNano()))
b.Send(bs[:])
log.Printf("Sent %d bytes", len(bs[:]))
time.Sleep(10 * time.Second)
}
}()
select {}
}