下面的输入文件行也被格式化为“ swi delay interval” 其中interval是一个整数,以毫秒为单位。 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