示例#1
0
文件: loic.c 项目: xymostech/loic
int main(int argc, char **argv)
{
	int num_threads = 100;
	int rate = 1000;
	
	struct option long_options[] = {
		{"threads", required_argument, 0, 't'},
		{"rate",    required_argument, 0, 'r'},
		{"help",    no_argument,       0, 'h'},
		{0,         0,                 0, 0  }
	};

	int c;
	int option_index = 0;

	while((c = getopt_long(argc, argv, "ht:r:", long_options, &option_index)) != -1) {
		switch(c) {
			case 't':
				num_threads = atoi(optarg);
				break;
			case 'r':
				rate = atoi(optarg);
				break;
			case 'h':
				printf("loic: low orbit ion cannon\n");
				usage();
				printf("  -r, --rate:    modify requests per second\n"
				       "                 default: 1000\n"
				       "  -t, --threads: modify the number of threads\n"
				       "                 default: 100\n");
				return 0;
			default:
				usage();
				return -1;
		}
	}

	if(optind == argc) {
		printf("error: a host must be supplied\n");
		usage();
		return -1;
	}

	pthread_t threads[num_threads];

	char done = 1;

	int i;

	long long nsec_rate = 1000000000LL * num_threads / rate;

	gtime.tv_sec = nsec_rate / 1000000000LL;
	gtime.tv_nsec = nsec_rate % 1000000000LL;

	setup_messages();

	setupinfo(argv[optind]);

	for(i=0; i<num_threads; ++i) {
		pthread_create(&threads[i], NULL, loop, &done);
	}

	for(;;) {
		send_count = 0;
		recv_count = 0;
		restart_count = 0;
		sleep(1);
		printf("sent: %8llu recvd: %10llu failed: %8llu\n", send_count, recv_count, restart_count);
	}

	done = 0;

	return 0;
}
示例#2
0
文件: stairs.c 项目: Lundex/lima
// Separated from create() so that objects can overload this separately
void more_create(mixed up_dest, mixed down_dest) {
    set_plural(1);
    setup_messages("stairs", up_dest, down_dest);
}
示例#3
0
void more_create(mixed up_dest, mixed down_dest, int attached) {
    setup_messages("ladder", up_dest, down_dest);
}