原创 C++ mmap/munmap

很早以前就看過文件操作的另外一種方式:內存映射,後來一直忘了去補這個坑,今天有空試了試,感覺非常好,強大之處遠遠超出了想象。這個映射讓文件操作像直接操作內存一樣,變得非常簡單,而且對於以前感覺很難解決的文件操作上變得是異常簡單,比如多進程

原创 C++ SOCKET通信模型(一)select

以前做遊戲服務器的時候我就聽說過IOCP和EPOLL,一直沒來得及去填這個坑,從今天開始有多餘的時間打算把這個重要的坑填上。說IOCP和EPOLL前,先說說阻塞+多線程模式,我以前都是寫競技類的遊戲服務器,所以TCP基本上都是長連接,其實

原创 C++ SOCKET通信模型(三)IOApc

說IOCP之前,不得不說下基於Overlapped IO模型的另外一種設計思路,上篇說的是基於事件通知的,這篇就說下完成例程,也可以說是回調。基於事件通知,始終有每個線程最多隻能監聽64個事件的限制,就算經過我上篇寫的多線程優化,但線程數

原创 IFreeNetwork linux c++高性能高併發通用解決方案級網絡框架

1.基於多路複用模型和原生異步的網絡框架 2.應用層zero-copy收發數據設計,極度減輕了內存拷貝的額外開銷以及進程用戶-內核之前的頻繁切換 3.良好的負載均衡設計,使得多用戶之間的資源佔用更爲公平,減少長時間無響應的發生概率 4.超

原创 C++ SOCKET通信模型(二)IOEvent

本系列我準備做一個完整的研究,包含Windows的IOCP IOEvent,linux的poll 和 epoll,上篇已經說了非阻塞IO衍化的select多路複用IO,由於windows和linux都差不多,就不再多說select模型了。

原创 VS2017 中文亂碼

最近由2015換到了2017,開發.NET CORE 今天有空繼續補坑,當然先補下IOCP EPOLL這兩個玩意,但居然發現2017中C++項目中文亂碼,不用想都知道編碼問題。控制檯默認編碼肯定GBK,可能2017默認保存文件編碼是UTF

原创 Windows10 中的 Linux

以前老是費事的去裝雙系統,其實個人很喜歡linux,但是作爲開發人員。。。VS就是神器,稍微大點的項目沒VS真的吃不消。但自從有了WIN10 中的子系統,那就不一樣了,虛擬機也不用了,也可以開心的用命令行玩一波了~~ win10 中內嵌的

原创 C++ SOCKET通信模型(四)IOCP

相比IOEvent,IOCP沒有事件監聽,而是採用線程池管理(其實就是對用戶創建的線程的一個分配管理機制,本身並不會創建多餘額外的線程)+隊列的形式,這個系統隊列也就是所謂的完成端口,用於內核與應用層的交互。IOCP沒有監聽事件數量的限制

原创 全志F1C100S RT-Thread(RTOS)視頻教程

最近想寫的東西挺多的,但工作後發現時間完全不是自己的,後面再來寫網絡庫、ECC、MFCC的講解。 作爲搞軟件開發的,弄這種硬件底層的東西還是挺頭疼的,因爲我搞的東西要求實時性非常高,又要低成本(要讓不吃草的馬兒跑),FPGA雖然能滿足需求

原创 C# WPF 數據綁定同步

WPF裏有幾個關於後臺數據綁定的核心對象,但有些時候其使用方式卻容易讓人迷惑,甚至混淆。現在就來總結梳理一下,DataContext、Itemsource、Command、Binding、INotifyPropertyChanged、Ob

原创 C++ CMake常用總結

這次在公司強制熟悉了一波CMake,以前自己就算是寧肯寫makefile也不想去引入cmake,總覺得越原始的東西可控性越高,強迫症晚期了,哈哈。沒想到用了之後才覺得,這東西還真**方便,不用真SB了。Cmake在解決跨平臺編譯配置問題基

原创 C++ ORM Matador

對於關係型數據庫,sql無疑是讓人頭疼的地方,個人對寫這種重複CRUD的代碼簡直覺得是噁心透底,要是表再一多,瞬間爆炸。 對於c++,我以往本身還是很排斥ORM的,畢竟那是java和c#喜歡用的東西,感覺沒有什麼比較順眼的開源框架,直到這

原创 _stdcall 與 _cdecl

以前用過WINAPI,後來做dll也總是習慣於_stdcall,雖然知道C裏面用_cdecl的挺多的,還以爲只是種習慣聲明,直到最近用C#導入C++的dll才發現這兩種在原理上實質還是有一定的差別的,又掃盲了。。。   _stdcall是

原创 c++ 乘積最大

今天抽空活動腦子做題,雖然一次過了,一看耗時是別人10倍,內存消耗也高。。最後發現居然自己傻逼了,把DP的題用DFS解了。。。不得不說方法和思路是至關重要的。。。   這個題有個很關鍵的地方,這個性質決定了這題應該是用DP求解。就是 X被

原创 c++ 局域網遠程開機(wol、魔術包)

實現原理很簡單,就是udp發個包,共102字節。網卡應該是基於鏈路層處理的,並不用指定特定的IP和端口,隨意設置端口全網廣播即可。最後再加個bat腳本 ./WOL.exe xx:xx:xx:xx:xx:xx,放在365*24小時開機的mi