Строки входного файла ниже также отформатированы как «интервал задержки swi», где интервал - это целое число в миллисекундах.Каждый раз, когда swi встречает такую строку, коммутатор задерживает чтение (и обработку) оставшейся части входного файла в течение указанного промежутка времени.В течение этого периода коммутатор должен продолжать отслеживать и обрабатывать команды клавиатуры и пакеты, полученные от подключенных устройств.Эта функция имитирует задержки при получении пакетов от хостов, обслуживаемых коммутатором.
Я думал об использовании wait (), но вскоре понял, что это не то, что вы делаете с задержкой.Как я могу сделать это?код ниже, как я читаю из файла трафика прямо сейчас.Я использую poll () для мониторинга других файловых дескрипторов.
/*Read the traffic file */
while((ch = fgets(line, sizeof(line), fp) != NULL)){
if(line[0] == '#' || line[0] == ' ' || line[0] == '\n' || (!strstr(line, switchI))){
continue;
}
if(line[4] == 'd'){
strcpy(newline, line);
tempp = strtok(newline, " ");
tempp = strtok(NULL, " ");
strcpy(delay, tempp);
tempp = strtok(NULL, " ");
interval = atoi(tempp);
//printf("%s\n", line);
//printf("%s, %d\n", delay, interval);
sw1 delay 2000
sw1 100 101
sw1 100 102
sw1 100 700
sw1 delay 2000
#
sw2 delay 2000
sw2 500 501
sw2 500 502
sw2 500 700
sw2 delay 2000
#
sw3 delay 2000
sw3 200 201
sw3 200 202
sw3 200 700