金龙珠宝黄金
首頁  >   經驗  >   [C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理

[C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理

查看 codexia 的博客 2016-11-13 14:03:55 2225
服務器   時鐘   線程  
手機閱讀 | 轉發賺積分
手機收藏 | 分享給好友
簡介C++技術網已經用心解答了用戶提出的問題【[C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理】,如還有問題,請繼續在文章底部留言交流,直到完全懂了為止。

    在此之前,我先感謝C++技術網之前回答過的問題,接下來我問的問題是接在 Windows Socket IOCP 完成端口之后的。

    C++技術網之前提供的答案,是看指定的一些書籍。我之后也是下載來看,發現書中講的是很詳細,但是這一看也不知不覺花了四個月的時間,有些內容沒看完,也有些也沒理解好。

    盡管如此,關于 Windows Socket IOCP,我也只能到處找幾個源碼加書中的理解也勉強算是可以理解的了。但還有一些疑問在我這里,就好比關聯到完成端口的套接字,關聯是關聯了,但是如何解綁呢?這又是很頭疼的問題,最后搜索出來的答案是只要 closesocket() 就好了,IOCP 會自動檢查句柄是否有效,如果無效,將會自動解綁。雖然我不知道算不算正確,但總比沒有答案的好;接下來還有內存異常的處理;內存池等問題。來來回回也算是遇到了很多問題。

    關于其他的一些問題,之后我再慢慢通過C++技術網一一提問吧。

    話說得有點長了,不好意思,接下來是要問的問題。

    在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理呢?

    時鐘:

    A-1) 優點就是指定每隔一段時間,就會執行到指定的函數。不管指定函數有沒有執行完成,到了一定的時間又會去執行。就好比一個隊長每隔段時間叫一名隊員去做事,然后隊長就不管隊員是否把事情做完,就去休息,等待下段時間繼續叫一名隊員去做事。

    A-2缺點:

1.微信掃碼
2.點擊按鈕,粘貼命令
自動刷新 手動刷新
命令:rd r7kaQ 復制
提示:如果您發送了命令,自動刷新會展開全文。自動刷新最多60秒,超過60秒請點擊手動刷新。
創作不易,汗水不止!為防止勞動果實被爬蟲竊取,開啟了反爬機制,需要您發送命令繼續閱讀。取關會再次出現此提示。一段時間后出現此提示,請再次發送即可。如有問題,請加客服微信Freeme007處理。感謝您的理解。
標注
評論
站內搜
百度搜
傳送到手機
手機掃碼,識別文字,完成傳送x
加載中...
標注內容x
加載中...
添加標注x
文章標題:[C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理
文章地址:http://www.bpxla.club/article/2016111314355432
轉載到個人博客,請在文末帶上右側內容(含超鏈接):本文轉載自:[C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理
收藏 0 點贊 0
公眾號
微信贊賞
支付寶贊賞
領支付寶大紅包
QQ群

相關閱讀

  1. 一站式手把手教你搭建網站服務器 查找全網同類文章
  2. 日志技術的問題總結和完整改進方案(單線程、多線程、子線程、定時器、隊列的運用) 查找全網同類文章
  3. mysql指定條件批量殺死線程的方法 查找全網同類文章
  4. 服務器安全防護:6 端口控制的那些事附常見端口號列表 查找全網同類文章
  5. 服務器安全防護:5 源頭控制應用層開放式IP控制的IP歸屬地查詢代碼實現 查找全網同類文章
  6. 服務器安全防護:4 源頭控制應用層封閉式IP控制代碼實現 查找全網同類文章
  7. 服務器安全防護:3 源頭控制場景分析-開放式IP控制 查找全網同類文章
  8. 服務器安全防護:2 源頭控制場景分析-封閉式IP控制 查找全網同類文章
  9. 服務器安全防護:1 服務器安全防護和保護措施方案 查找全網同類文章
  10. 項目開發中使用并發模型常見問題的整理與思考 查找全網同類文章
分享到:
分享文章[[C++] 在編寫服務器代碼時,應該選擇時鐘還是線程來做心跳包處理]到QQ空間

相關閱讀

猜您感興趣

金龙珠宝黄金 59193821326631996496569095473233948526347514817692729848493375191172232243299538794238554991889393 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();