這兩天在跟蹤一個故障,網絡部分的,邏輯有點複雜,最後定位到斷開一個TCP連接再快速創建一個新的TCP連接(WIndows窗口綁定的網絡,主線程中操作)。這個新創建的Socket返回的描述符和剛剛斷開的Socket的描述符相同,導致斷開的Socket返回的FD_CLOSE消息將新創建的Socket又給關閉了。程序邏輯是和Socket描述符相關的。爲了最簡單的解決(項目後期),在斷開連接後有1S定時器,定時器到了後再創建新的連接(目的是爲了等待剛剛關閉的出發的FD_CLOSE消息執行完畢)。FD_CLOSE消息肯定是在TIMER消息之前,所以不會有問題。測試發現如果是有定時器比較難發現新建的和剛剛斷開的連接的描述符是相同的,不過和以前的還是有相同的(已經不影響我們的程序邏輯了)。如果馬上新連接,在某種情況下還是比較常見的。
新創建的Socket返回的描述符和剛剛斷開的Socket的描述符相同
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
量化投資領域--關於Quant的FAQ
xiaoshiquan
2018-08-27 17:26:56
C++實現修改磁盤san策略
乔春城
2018-08-27 16:47:05
C++ 實現磁盤初始化
乔春城
2018-08-27 16:47:04
Windows下編譯OpenSSL庫 [32位] [保證可用~~ 不服來打我呀]
乔春城
2018-08-27 16:47:04
Windows下編譯OpenSSL庫 [準備工作]
乔春城
2018-08-27 16:46:51
C++ 實現磁盤去只讀屬性
乔春城
2018-08-27 16:46:50
C++ 實現客戶端阿里雲遷移準備工作
乔春城
2018-08-27 16:46:50
Windows下編譯OpenSSL庫 [64位] [保證可用~~ 不服來打我呀]
乔春城
2018-08-27 16:46:49
編寫NT服務程序
yujinqiong
2018-08-27 11:31:04
如何在Win10上測試CP
zazag
2018-08-27 05:30:35
預編譯頭文件的使用
zsflyhorse
2018-08-26 07:26:48
GetMessage與PeekMessage(16位windows程序)
jakcymay1
2018-08-26 04:49:31
windows消息機制
jakcymay1
2018-08-26 04:49:31
SvcHost.exe調用的服務原理與實踐
jakcymay1
2018-08-26 04:49:26