xsC 多線程網(wǎng)絡(luò)庫(kù)
基于C多線程網(wǎng)絡(luò)庫(kù),歡迎大家使用,例子在代碼example目錄下,以后我會(huì)再增加一些例子。
文檔暫時(shí)沒(méi)有,有問(wèn)題請(qǐng)郵件我:-)
獲取代碼:https://github.com/xueguoliang/xs
xs致力于1)多線程網(wǎng)絡(luò)庫(kù),如果你的程序要需要網(wǎng)絡(luò)通信,而且不希望多進(jìn)程,那這個(gè)庫(kù)可能適合你。目前xs支持linux和windows,linux采用epoll,windows下是select,不好意思對(duì)iocp不熟悉,期待你們有貢獻(xiàn)。
2)盡量將接口整的簡(jiǎn)單
3)線程工作采用推動(dòng)式
4)支持定時(shí)器(用最小堆實(shí)現(xiàn))
5)盡量效率高,所以盡量不用鎖
使用庫(kù)的方法,跟android有點(diǎn)像:
1.在xs/src中建立一個(gè)目錄,你的工程目錄,比如aaa
2.在目錄中寫(xiě)一個(gè)xs.mk(空文件即可,但是沒(méi)有是不行的)
3.再寫(xiě)你的.c文件,
4.完成之后,回到xs/src,輸入make,你的工程將會(huì)被編譯,如果你的代碼沒(méi)有編譯錯(cuò)誤,將會(huì)在xs/src目錄下出現(xiàn)aaa.bin
另外一種辦法,你將xs庫(kù)當(dāng)成普通動(dòng)態(tài)庫(kù)使用,這樣的話(huà),你的某個(gè).c文件要加上兩個(gè)全局變量
char* g_mem_files[1];
int g_mem_file_count = 0;
這兩個(gè)變量是我的Makefile生成的,如果你不用我的makefile,那就得自己給定義個(gè)
最后這個(gè)庫(kù)我在linux,windows,android,嵌入式linux等平臺(tái)下都測(cè)試過(guò),稍微改改makefile(在windows下直接用qt編譯的)就可以使用,記得mail我哦
