繁体   English   中英

客户端中经过的时间不起作用TCP SOCKET

[英]Elapsed time in client does not work TCP SOCKET

客户端像这样工作

clock_t s, f;

while(TRUE){
    write
    s_time = clock()

    read    
    f_time = clock();

    double client_time = (double)(f_time - s_time) / CLOCKS_PER_SEC;
    fprintf(stderr, "ct = %lf\n", client_time);
}

我向服务器发送消息后,计时器立即启动,并且当客户端从服务器读取消息时,计时器停止。 在服务器中,需要5到10秒钟才能回复客户。 这是我的问题。 客户端中的计时器仅显示非常短的时间。 大约只有0.0000085。 如何保持实际经过时间?

clock测量CPU时间,即CPU执行代码所花费的时间。 但是,您的代码大部分没有使用CPU:在read等待数据到达时,它被阻止(换句话说,什么也不做)。

要测量经过的墙壁时间,请使用gettimeofday而不是clock

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM