我服務器要判斷客戶端心跳 如果3分鐘沒收到心跳就主動斷開與客戶端的socket,我在接受心跳的處理函式中加了timeGetTime()然后把獲取到的DWORD時間存到map中 然后創建了一個執行緒函式 用while回圈 和Sleep(180000)來定3分鐘走入檢測函式一次 檢測函式就是獲取當前的timeGetTime()值與map中這個設備上傳的心跳時間值做相減 如果 DWORD1 - DWORD2 > 180000說明3分鐘沒接到心跳 就shutdown(&fd)但是實際運行后發現 在做DWORD1 - DWORD2 > 180000這個比較大小的時候 總是明明比18000萬小 還是走進if陳述句 這是為什么啊 搞了2天了 不知道哪里的問題啊
uj5u.com熱心網友回復:
有多執行緒高手幫忙想想是什么問題嗎uj5u.com熱心網友回復:
180000不是本來就是比18000萬小么?uj5u.com熱心網友回復:
用時間控制更準確,我也不知道你的DWORD1是咋來地,更不知道DWORD2也是咋來地uj5u.com熱心網友回復:
DWORD 是 UNSIGN LONG,你把DWORD換成 LONG LONG 這種有符號的資料型別,再去做減法運算。。。。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104322.html
標籤:網絡及通訊開發
上一篇:類的內置方法(用實際代碼來驗證)
下一篇:win32 api 好學嗎
