| 207 | } |
| 208 | |
| 209 | int main(int argc, char* argv[]) |
| 210 | { |
| 211 | char ch; |
| 212 | int npkt = 5, i, syn = 0, thread = 0; |
| 213 | ACL_ARGV* dest_list = acl_argv_alloc(10); |
| 214 | |
| 215 | signal(SIGINT, OnSigInt); /* �û����� ctr + c ʱ�ж� PING ���� */ |
| 216 | acl_socket_init(); /* �� WIN32 ����Ҫ��ʼ��ȫ�����ֿ� */ |
| 217 | acl_msg_stdout_enable(1); /* ���� acl_msg_xxx ��¼����Ϣ�������Ļ */ |
| 218 | |
| 219 | while ((ch = getopt(argc, argv, "htsl:n:d:")) > 0) { |
| 220 | switch (ch) { |
| 221 | case 'h': |
| 222 | usage(argv[0]); |
| 223 | return (0); |
| 224 | case 's': |
| 225 | syn = 1; |
| 226 | break; |
| 227 | case 't': |
| 228 | thread = 1; |
| 229 | break; |
| 230 | case 'n': |
| 231 | npkt = atoi(optarg); |
| 232 | break; |
| 233 | case 'd': |
| 234 | __delay = atoi(optarg); |
| 235 | break; |
| 236 | default: |
| 237 | usage(argv[0]); |
| 238 | return (0); |
| 239 | } |
| 240 | } |
| 241 | |
| 242 | if (optind == argc) { |
| 243 | usage(argv[0]); |
| 244 | return (0); |
| 245 | } |
| 246 | |
| 247 | for (i = optind; i < argc; i++) { |
| 248 | acl_argv_add(dest_list, argv[i], NULL); |
| 249 | } |
| 250 | |
| 251 | if (npkt <= 0) |
| 252 | npkt = 0; |
| 253 | |
| 254 | /* ͬ�� PING ��ʽ�����ڶ��Ŀ���ַ������һ���߳� PING һ����ַ */ |
| 255 | if (thread) |
| 256 | ping_main_threads(dest_list, npkt); |
| 257 | |
| 258 | /* ͬ�� PING ��ʽ��ֻ��ͬʱ PING һ����ַ */ |
| 259 | else if (syn) |
| 260 | ping_main_sync(dest_list->argv[0], npkt); |
| 261 | |
| 262 | /* �첽 PING ��ʽ��������һ���߳���ͬʱ PING �����ַ */ |
| 263 | else |
| 264 | ping_main_async(dest_list, npkt); |
| 265 | |
| 266 | acl_argv_free(dest_list); |
nothing calls this directly
no test coverage detected
searching dependent graphs…