printf("Simulate alarm machines to connect to direct server, while connected, machines will start send heartbeats, user can also input commands to test."
"After timeout passed, simulation will stop and show stats\n"
"Usage: %s ip port thread_count session_count acct_base machine_type heartbeat_gap timeout [print_data]\n"
" ip : transmit server' ip\n"
" port : transmit server's port\n"
" thread_count : threads to use\n"
" session_count: alarm machines to simulate\n"
" acct_base : simulated alarm machines account base, their accounts will be in acct_base + to_string(session_id) form\n",argv0);
printf(" machine_type : -1 for random type, valid types are:\n");
for(autotype:AllMachineTypes){
if(machineIsSelling(type))
printf(" %s\n",machineTypeToString(type));
}
printf(" heartbeat_gap: secends between two heatbeats\n"
" timeout : close clients after seconds\n"
" print_data : print sent/recved data\n");
}
intmain(intargc,char**argv)
{
#ifdef _WIN32
...
...
@@ -350,11 +374,8 @@ int main(int argc, char** argv)
}
#endif
if(argc<7){
printf("Usage: %s ip port thread_count session_count load_test timeout [print_data]\n"
" load_test: 0 or 1:\n"
" 0 to disable load test mode, timeout is client's heartbeat timeout in seconds\n"
" 1 to enable load test mode, timeout is client's lifecycle timeout in seconds\n",argv[0]);
if(argc<9){
usage(argv[0]);
return1;
}
...
...
@@ -362,40 +383,93 @@ int main(int argc, char** argv)
intport=atoi(argv[2]);
if(port<=0||port>65535){
puts("Invalid port");
usage(argv[0]);
return1;
}
thread_count=atoi(argv[3]);
if(thread_count<=0){
puts("Invalid thread_count");
usage(argv[0]);
return1;
}
session_count=atoi(argv[4]);
if(session_count<=0){
puts("Invalid session_count");
usage(argv[0]);
return1;
}
if(thread_count>session_count){
puts("thread_count must not bigger than session_count");
usage(argv[0]);
return1;
}
if(session_count%thread_count){
puts("session_count must times thread_count");
usage(argv[0]);
return1;
}
acct_base=argv[5];
if(acct_base.size()>18){
puts("acct_base is too long, max acct length is 18");