关于时间戳,想得到独一无二的时间戳
我现在通过SOCKET进行通信,消息结构体中有个字段名为time_t time;通过time.h头文件中的 time方法给值,但是我突然在CONSOLE下
进行如下测试:
time_t t1,t2;
time(&t1);
time(&t2);
发现获得的t1和t2的值一样,也就是说当我连续发送消息的时候,可能产生的时间戳是一样的,而我 本希望时间戳作为一个独一无二的标志,来区分我发的哪条消息。
愿望成空了,如果 哪位 大哥大姐 大叔大婶 有更好的方法,请告知:
感谢涕零。
[解决办法]
使用gettimeofday吧,到微秒级的
不过时间戳非时间,理论上总会有可能会重
[解决办法]
呵呵你同时进行两次时间戳的读取怎么行呢?
time返回的是秒,一秒中进行1000w次的time都可以
因此你得到两个一样的time是正常的,你两次中间可以休息一下如下:
#include <stdio.h> #include <time.h>#include "windows.h"int main(int argc,char *argv[]) { time_t time1 = time(NULL); printf("%d\n", time1); Sleep(5000); //休息5秒 time1 = time(NULL); printf("%d\n", time1);}
[解决办法]
不要用时间,用个统一id,每发一个包就加1
tcp即如此
[解决办法]
windows平台,试试用QueryPerformanceCounter,系统的ticks应该是不停变化的
[解决办法]