簡體   English   中英

處理數據包的設計模式

[英]Design pattern for handling packets

我正在為游戲項目編寫TCP網絡。 當數據包進入時,數據包的第一個字節確定該數據包的處理類型。 然后,應將數據包轉發到根據其句柄類型處理數據包的方法

我可以有很多邏輯案例,然后根據數據包類型調用方法,但是我想看看我可以實現哪些更好的設計模式來減少代碼重復。

我已經考慮過使用訂閱者/通知者模式,我並不完全反對它,但是我感覺好像要進行一堆Subscribe(packetType,funcReference)調用,因此也許也不理想。

具有處理每種數據包類型的大switch語句是完全可以接受的。 即使在給定處理的數據包有多個解析程序的情況下,您也可以在這種情況下觸發已訂閱的回調。

根據我的經驗,這是人們(過去包括我自己)為了“更好”的代碼而變得過於復雜的情況之一。 乍看之下,先開關后手柄非常容易,並且易於擴展。

由於您的數據包類型標記僅是一個字節,因此您可以創建一個指針數組來處理大小為256個元素的函數。 程序啟動后初始化一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM