linux下创建了一个线程执行一个函数,总出错

wangziyilimingjie 2015-01-27 11:58:17
我服务器要判断客户端心跳 如果3分钟没收到心跳就主动断开与客户端的socket,我在接受心跳的处理函数中加了timeGetTime()然后把获取到的DWORD时间存到map中 然后创建了一个线程函数 用while循环 和Sleep(180000)来定3分钟走入检测函数一次 检测函数就是获取当前的timeGetTime()值与map中这个设备上传的心跳时间值做相减 如果 DWORD1 - DWORD2 > 180000说明3分钟没接到心跳 就shutdown(&fd)但是实际运行后发现 在做DWORD1 - DWORD2 > 180000这个比较大小的时候 总是明明比18000万小 还是走进if语句 这是为什么啊 搞了2天了 不知道哪里的问题啊
...全文
416 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yan597478677 2015-03-05
  • 打赏
  • 举报
回复
180000不是本来就是比18000万小么?
draculamx 2015-03-05
  • 打赏
  • 举报
回复
DWORD 是 UNSIGN LONG,你把DWORD换成 LONG LONG 这种有符号的数据类型,再去做减法运算。。。。
sczyq 2015-03-05
  • 打赏
  • 举报
回复
用时间控制更准确,我也不知道你的DWORD1是咋来地,更不知道DWORD2也是咋来地
wangziyilimingjie 2015-01-27
  • 打赏
  • 举报
回复
有多线程高手帮忙想想是什么问题吗

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧