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.
82 lines
1.4 KiB
Markdown
82 lines
1.4 KiB
Markdown
# go-iperf
|
|
A Go based wrapper around iperf3
|
|
|
|
## Basic Usage
|
|
|
|
basic client setup
|
|
```go
|
|
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
|
|
```go
|
|
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
|
|
```go
|
|
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/
|
|
```
|