You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4b764206bb | 3 years ago | |
---|---|---|
.idea | 3 years ago | |
api | 4 years ago | |
cmd | 4 years ago | |
tests | 4 years ago | |
.gitignore | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
bindata.go | 4 years ago | |
client.go | 3 years ago | |
controller.go | 3 years ago | |
execute.go | 4 years ago | |
go.mod | 4 years ago | |
go.sum | 4 years ago | |
iperf.go | 3 years ago | |
protocol.go | 4 years ago | |
report.go | 4 years ago | |
reporter.go | 4 years ago | |
reporter_darwin.go | 4 years ago | |
reporter_linux.go | 4 years ago | |
reporter_windows.go | 4 years ago | |
sample.json | 4 years ago | |
server.go | 3 years ago | |
shared.go | 4 years ago |
README.md
go-iperf
A Go based wrapper around iperf3
Basic Usage
basic client setup
func main() {
c := iperf.NewClient("192.168.0.10")
c.SetJSON(true)
c.SetIncludeServer(true)
c.SetStreams(4)
c.SetTimeSec(30)
c.SetInterval(1)
err := c.Start()
if err != nil {
fmt.Printf("failed to start client: %v\n", err)
os.Exit(-1)
}
<- c.Done
fmt.Println(c.Report().String())
}
basic server setup
func main() {
s := iperf.NewServer()
err := s.Start()
if err != nil {
fmt.Printf("failed to start server: %v\n", err)
os.Exit(-1)
}
for s.Running() {
time.Sleep(100 * time.Millisecond)
}
fmt.Println("server finished")
}
client with live results printing
func main() {
c := iperf.NewClient("192.168.0.10")
c.SetJSON(true)
c.SetIncludeServer(true)
c.SetStreams(4)
c.SetTimeSec(30)
c.SetInterval(1)
liveReports := c.SetModeLive()
go func() {
for report := range liveReports {
fmt.Println(report.String())
}
}
err := c.Start()
if err != nil {
fmt.Printf("failed to start client: %v\n", err)
os.Exit(-1)
}
<- c.Done
fmt.Println(c.Report().String())
}
building binary data package with iperf binaries
go-bindata -pkg iperf -prefix "embedded/" embedded/