xref: /iperf/examples/mic.c (revision 480824e3)
1*c110a92dSBruce A. Mah #include "iperf_config.h"
2*c110a92dSBruce A. Mah 
33e587542SJef Poskanzer #include <stdio.h>
43e587542SJef Poskanzer #include <stdlib.h>
53e587542SJef Poskanzer #include <unistd.h>
63e587542SJef Poskanzer #include <string.h>
7426221a3SBruce A. Mah #ifdef HAVE_STDINT_H
83e587542SJef Poskanzer #include <stdint.h>
9426221a3SBruce A. Mah #endif
103e587542SJef Poskanzer 
113e587542SJef Poskanzer #include <iperf_api.h>
123e587542SJef Poskanzer 
133e587542SJef Poskanzer int
main(int argc,char ** argv)143e587542SJef Poskanzer main( int argc, char** argv )
153e587542SJef Poskanzer {
163e587542SJef Poskanzer     char* argv0;
173e587542SJef Poskanzer     char* host;
183e587542SJef Poskanzer     int port;
193e587542SJef Poskanzer     struct iperf_test *test;
203e587542SJef Poskanzer 
213e587542SJef Poskanzer     argv0 = strrchr( argv[0], '/' );
223e587542SJef Poskanzer     if ( argv0 != (char*) 0 )
233e587542SJef Poskanzer 	++argv0;
243e587542SJef Poskanzer     else
253e587542SJef Poskanzer 	argv0 = argv[0];
263e587542SJef Poskanzer 
273e587542SJef Poskanzer     if ( argc != 3 ) {
283e587542SJef Poskanzer 	fprintf( stderr, "usage: %s [host] [port]\n", argv0 );
293e587542SJef Poskanzer 	exit( EXIT_FAILURE );
303e587542SJef Poskanzer     }
313e587542SJef Poskanzer     host = argv[1];
323e587542SJef Poskanzer     port = atoi( argv[2] );
333e587542SJef Poskanzer 
343e587542SJef Poskanzer     test = iperf_new_test();
353e587542SJef Poskanzer     if ( test == NULL ) {
363e587542SJef Poskanzer 	fprintf( stderr, "%s: failed to create test\n", argv0 );
373e587542SJef Poskanzer 	exit( EXIT_FAILURE );
383e587542SJef Poskanzer     }
393e587542SJef Poskanzer     iperf_defaults( test );
408bdc8fffSJef Poskanzer     iperf_set_verbose( test, 1 );
41a27f6534SJef Poskanzer 
423e587542SJef Poskanzer     iperf_set_test_role( test, 'c' );
433e587542SJef Poskanzer     iperf_set_test_server_hostname( test, host );
443e587542SJef Poskanzer     iperf_set_test_server_port( test, port );
458bdc8fffSJef Poskanzer     /* iperf_set_test_reverse( test, 1 ); */
468bdc8fffSJef Poskanzer     iperf_set_test_omit( test, 3 );
478bdc8fffSJef Poskanzer     iperf_set_test_duration( test, 5 );
488bdc8fffSJef Poskanzer     iperf_set_test_reporter_interval( test, 1 );
498bdc8fffSJef Poskanzer     iperf_set_test_stats_interval( test, 1 );
502939863bSBruce A. Mah     /* iperf_set_test_json_output( test, 1 ); */
513e587542SJef Poskanzer 
523e587542SJef Poskanzer     if ( iperf_run_client( test ) < 0 ) {
533e587542SJef Poskanzer 	fprintf( stderr, "%s: error - %s\n", argv0, iperf_strerror( i_errno ) );
543e587542SJef Poskanzer 	exit( EXIT_FAILURE );
553e587542SJef Poskanzer     }
563e587542SJef Poskanzer 
572939863bSBruce A. Mah     if (iperf_get_test_json_output_string(test)) {
582939863bSBruce A. Mah 	fprintf(iperf_get_test_outfile(test), "%zd bytes of JSON emitted\n",
592939863bSBruce A. Mah 		strlen(iperf_get_test_json_output_string(test)));
602939863bSBruce A. Mah     }
612939863bSBruce A. Mah 
623e587542SJef Poskanzer     iperf_free_test( test );
633e587542SJef Poskanzer     exit( EXIT_SUCCESS );
643e587542SJef Poskanzer }
65