• Measure Time in Milliseconds

    2 comments

    最近被Computer and Communication Networks的一份功課虐待中……

    話說這份功課其中一條是要在Linux systems中用C或C++寫一個socket program, 用來計算RTT的. 這個RTT是指由client side send一個packet到server side, 再由server side立即送回給client side所需的時間. 因為這個時間很短, 所以至少需要milliseconds…

    其他的部分都不算難, 只是基本的setup socket, send & read之類的. 唯一問題是平時見的examples都是TCP的, 但這次用的卻是UDP…….雖然是沒甚麼大差異, 但還是要小心看清楚~

    好, 完成後, 卻被時間虐待了……time.h內的time(), clock()甚麼的, 全都不管用!!因為只準確至秒……距離微秒還有一大段路!!

    今天, 終於找到答案了……用到的是sys/time.h內的gettimeofdate().

    #include <unistd.h>
    #include <sys/time.h>
    
    /*
    	struct timeval的defination: (已定義在sys/time.h)
    
    	struct timeval {
    		time_t tv_sec;		//秒
    		suseconds_t tv_usec;	//毫秒
    	}
    */
    
    int main() {
    	struct timeval start, end;		//用來記下開始 & 結束時間的
    	long seconds, useconds, time_in_ms;
    
    	gettimeofday(&start, NULL);
    	gettimeofday(&end, NULL);
    
    	seconds = end.tv_sec - starrt.tv_sec;
    	useconds = end.tv_usec - start.tv_usec;
    	time_in_ms = seconds * 1000 + useconds/1000.0;
    
    	return 0;
    }
    • 聽人地講C++好難
      新手千祈唔好學

      • 又唔可以咁講ge~
        難唔係唔學的藉口^^”

        學咩lnaguage最好都係睇返實際需要啦~
        不過我個人比較鐘意OOP (Object Oriented Programming), 所以我會推荐d比較OO的language, 例如Java, C#.net之類的^^

    Write a comment