1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 #include <string.h> 5 #include <sysexits.h> 6 #include <stdint.h> 7 8 #include <iperf_api.h> 9 10 int 11 main( int argc, char** argv ) 12 { 13 char* argv0; 14 char* host; 15 int port; 16 struct iperf_test *test; 17 18 argv0 = strrchr( argv[0], '/' ); 19 if ( argv0 != (char*) 0 ) 20 ++argv0; 21 else 22 argv0 = argv[0]; 23 24 if ( argc != 3 ) { 25 fprintf( stderr, "usage: %s [host] [port]\n", argv0 ); 26 exit( EXIT_FAILURE ); 27 } 28 host = argv[1]; 29 port = atoi( argv[2] ); 30 31 test = iperf_new_test(); 32 if ( test == NULL ) { 33 fprintf( stderr, "%s: failed to create test\n", argv0 ); 34 exit( EXIT_FAILURE ); 35 } 36 iperf_defaults( test ); 37 iperf_set_verbose( test, 1 ); 38 39 /* This main program doesn't use SIGALRM, so the iperf API may use it. */ 40 iperf_set_test_may_use_sigalrm(test, 1); 41 42 iperf_set_test_role( test, 'c' ); 43 iperf_set_test_server_hostname( test, host ); 44 iperf_set_test_server_port( test, port ); 45 /* iperf_set_test_reverse( test, 1 ); */ 46 iperf_set_test_omit( test, 3 ); 47 iperf_set_test_duration( test, 5 ); 48 iperf_set_test_reporter_interval( test, 1 ); 49 iperf_set_test_stats_interval( test, 1 ); 50 51 if ( iperf_run_client( test ) < 0 ) { 52 fprintf( stderr, "%s: error - %s\n", argv0, iperf_strerror( i_errno ) ); 53 exit( EXIT_FAILURE ); 54 } 55 56 iperf_free_test( test ); 57 exit( EXIT_SUCCESS ); 58 } 59