为什么这个for循环不执行?

时间:2014-11-23 23:17:30

标签: c networking for-loop

现在,我正在尝试编写一个简单的TCP客户端/服务器程序,该程序可以测量以太网LAN上的RTT。但是,我在使用以下功能时遇到了一些麻烦:

void iteratedSend(int iterations, int msgSize, bool useRTT){
    printf("started iteratedSend for size %d\n",msgSize);//DEBUG STATEMENT 1
    int i;
    double elapsedTime = 0;
    for(i = 0; i < iterations; i++){
        printf("iteration %d", i);//DEBUG STATEMENT 2
        elapsedTime += timeMessage(msgSize, true);
    }
    if(!useRTT)
        elapsedTime = elapsedTime / 2.0;

    double throughput = (msgSize * iterations) / elapsedTime;
    printf("Message Size: %d bytes  Elapsed Time: %f ms  Throughput: %f Bps\n" ,
        msgSize, elapsedTime, throughput);

    fprintf(outputFile, "Message Size: %d bytes  Elapsed Time: %f ms  Throughput: %f
        Bps\n" ,  msgSize, elapsedTime, throughput); 
    fprintf(dataFile, "%.3d , %.3f\n" ,  msgSize, throughput);

}

奇怪的是,打印了标记为“DEBUG STATEMENT 1”的代码行,因此函数成功启动,但是从未打印语句“DEBUG STATEMENT 2”,并且循环从未执行。发生这种情况时,我的客户端和服务器将无限期挂起。

当执行以下代码行时,发生此挂起的位置为main:

iteratedSend(1, 1024000,false);

关于究竟发生了什么的任何想法?对我的C代码中任何违反惯例的行为提前道歉; C对我来说仍然是一种新语言。

谢谢!

0 个答案:

没有答案