日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

完成端口(IOCP)怎么判断某个连接是否断开

發布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 完成端口(IOCP)怎么判断某个连接是否断开 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

完成端口函數:

[csharp] view plaincopy

BOOLGetQueuedCompletionStatus(

HANDLECompletionPort,

LPDWORDlpNumberOfBytes,

PULONG_PTRlpCompletionKey,

LPOVERLAPPED*lpOverlapped,

DWORDdwMilliseconds

);

1.通常做法

目前查了大部分網上的關于完成端口,是否連接斷線,大多是通過*lpNumberOfBytes==0來判斷是否有連接斷線的.之前我也是這么做的.但在實際游戲平臺運行過程中,偶爾有游戲玩家反映,為什么我玩著玩著就斷線了,由于網絡原因復雜,并沒有對此判斷表示過懷疑.

2.發現問題

今天在調試網絡部分代碼,,發現有些時候*lpNumberOfBytes==0,但是再調用nCount = recv函數去收數據,竟然可以收到數據(nCount >0),反復測試了好幾次,多是如此,那表明dwThancferred==0的時候,并不表示連接已經斷開.

3.解決問題

從上述發現的問題可以看到,*lpNumberOfBytes==0時,再用nCount = recv去讀取下數據,如果還是未讀取到數據(nCount==0),那么就判斷這個連接已經斷開.

總結

以上是生活随笔為你收集整理的完成端口(IOCP)怎么判断某个连接是否断开的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。