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.
		
		
		
		
		
			| 
				
					
						
							 | 
			4 years ago | |
|---|---|---|
| .idea | 4 years ago | |
| api | 5 years ago | |
| cmd | 4 years ago | |
| tests | 5 years ago | |
| .gitignore | 5 years ago | |
| LICENSE | 5 years ago | |
| README.md | 5 years ago | |
| bindata.go | 4 years ago | |
| client.go | 4 years ago | |
| controller.go | 4 years ago | |
| execute.go | 4 years ago | |
| go.mod | 5 years ago | |
| go.sum | 5 years ago | |
| iperf.go | 4 years ago | |
| protocol.go | 5 years ago | |
| report.go | 4 years ago | |
| reporter.go | 5 years ago | |
| reporter_darwin.go | 4 years ago | |
| reporter_linux.go | 4 years ago | |
| reporter_windows.go | 5 years ago | |
| sample.json | 5 years ago | |
| server.go | 4 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/