KonsanNet 網絡通信框架的設想(C++實現)

如前文所述,我抽了些時間碼了一套網絡通信的框架代碼。

現在放在GitHub上:https://github.com/KonsanAlide/KonsanNet

設想中這套框架包含如下模塊:

1.通信服務端模塊CXCommunicationServer:支持TCP、UDP兩種協議,支持WINDOWS和Linux兩種平臺,包含會話管理、數據包解析、線程調度管理、數據包分發等模塊,大概分了四層,通信內核層(EPOLL和IOCP模型IO處理層)、數據包解析層(拆解包、驗證、壓縮、加密)、會話管理層、用戶消息處理層。

2.客戶端模塊CXCommunicationClient:包含一個基礎的SOCKET封裝庫,包含通信會話管理類,包含基礎的數據包組包和拆解包,包含rpc對象的調用例子,包含文件傳輸例子,包含基礎消息通信例子。

3.文件庫CXFile:對Windows文件操作接口和Linux的操作接口做了一個簡單的封裝,主要是用於大文件的處理。

4.內存管理庫CXMemoryCache:一個簡單的內存管理庫,用了一些Linux slab的原理,寫了一個鏈表來管理內存的分配和釋放,寫了一個類來管理不同大小的塊的內存池對象,用於解決網絡通信中內存頻繁的分配和釋放問題。

5.線程鎖庫CXLock:對Windows 的臨界區和Linux的spin_lock,mutex進行一個簡單的封裝。

6.日誌類CXLog:簡單的日誌類,有待擴展。

7.線程庫CXThread:對Windows和Linux的線程函數進行了一下簡單的封裝,主要是爲了兼容非C++11的低版本編譯環境。

8.套接字庫CXSocketWrapper:對socket的操作函數進行封裝,統一Windows和Linux的調用接口。這個庫裏面的核心類是我以前從網上下載下來修改過的,已經忘記來源於哪,如果有版權問題,或者發現原作者,請麻煩聯繫我,謝謝。

9.事件庫CXEvent:對Windows的event和Linux的條件變量進行包裝,統一Windows和Linux的調用接口。

該框架,目前在TCP通信方面已經進行了功能性的測試,包含Windows和Linux版本,初步實現了會話管理、消息通信處理和文件傳輸處理,但依然有很多需要改進的地方,後續我會慢慢的改進它,也歡迎大家參與改進工作,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章