static void end(void) { #ifdef ACL_MS_WINDOWS printf("input any key to exit\r\n"); fflush(stdout); getchar(); #endif acl_lib_end(); }
int main(int argc, char *argv[]) { char peer[64], local[64]; int ch, count = 1, dlen = 100, inter = 1000, nthreads = 1, quit = 0; int need_read = 0; acl_lib_init(); acl_msg_stdout_enable(1); snprintf(peer, sizeof(peer), "127.0.0.1:8888"); snprintf(local, sizeof(local), "127.0.0.1:0"); while ((ch = getopt(argc, argv, "hl:s:n:N:i:t:rq")) > 0) { switch (ch) { case 'h': usage(argv[0]); return 0; case 'l': snprintf(local, sizeof(local), "%s", optarg); break; case 's': snprintf(peer, sizeof(peer), "%s", optarg); break; case 'n': count = atoi(optarg); break; case 'N': dlen = atoi(optarg); break; case 'i': inter = atoi(optarg); break; case 't': nthreads = atoi(optarg); break; case 'r': need_read = 1; break; case 'q': quit = 1; break; default: break; } } if (peer[0] == 0 || local[0] == 0) { usage(argv[0]); return 1; } if (nthreads > 1) { int i; acl_pthread_pool_t *threads = acl_thread_pool_create(nthreads, 120); for (i = 0; i < nthreads; i++) { THREAD_CTX *ctx = (THREAD_CTX*) acl_mymalloc(sizeof(THREAD_CTX)); snprintf(ctx->local, sizeof(ctx->local), "%s", local); snprintf(ctx->peer, sizeof(ctx->peer), "%s", peer); ctx->count = count; ctx->dlen = dlen; ctx->inter = inter; ctx->need_read = need_read; ctx->quit = quit; acl_pthread_pool_add(threads, thread_run, ctx); } acl_pthread_pool_destroy(threads); } else run(local, peer, count, dlen, inter, need_read, quit); printf("\r\nlocal: %s, peer: %s, count: %d, dlen: %d, inter: %d\r\n", local, peer, count, dlen, inter); acl_lib_end(); return 0; }
static void end(void) { acl_lib_end(); }