跨平台编程资源,c & c++开发

一直在做跨平台开发,包括Linux和Windows平台,以下是项目用到的一些东西,希望有经验的高手,能提供更多的资料

线程 :
ptrhead,Windows下有pthreads-win32 http://sources.redhat.com/pthreads-win32/

网络:
socket api
asio (non-Boost) http://tenermerx.com/Asio/

数据库:
轻量级 xml,tinyxml引擎 http://sourceforge.net/projects/tinyxml
sqlite http://www.sqlite.org/

文件:
c库,fopen, fclose

内存管理
c库, malloc, free

数据结构
stl

以上有很多可以在boost中找到相关内容,没有在嵌入式平台用过,不知道表现怎么样?

有参考书:
Addison.Wesley.Cross.Platform.Development.in.C.plus.plus.Dec.2007.pdf

下面是我补充的一些:

1:标准库都是可移植的

2:数据库
Sleepycat Berkeley DB(我最喜欢的数据库之一,被oracle收购)
Firebird(非常优秀,可恨的Firefox早期居然强占了它的名字,后来Firebird社区集体抗议,Firefox才更名)
FastDB(C++的内存数据库)
eXtremeDB 实时数据库

3:XML
LibXML,apache和IBM的,另外就是expat

4:UI
QT,wxWidgets,XUL等

5:网络
ACE,ICE(跨平台,跨语言,轻量高效)

6:图形图像
OpenGL,SDL,ImageMagick

7:内存管理
boost里的smart ptr和pool 另外就是hp的Hans-Boehm GC

8:压缩解压
zlib,lzo,7zip

9:杂项
OpenSSL
log4cpp
ctags
xde 反汇编引擎,针对x86 CPU,不针对操作系统

以前,做过一点跨平台的工作,一些网络库可能没有ACE那么强大,但绝对是轻量级的,够用就好 : )
下面的网络库和wxWidgets结合,是最佳组合.

http://curl.haxx.se/

http://www.openssl.org/

http://sourceforge.net/projects/wxcurl

更多关于使用这些库的细节,可到我的个人主页:
http://www.geekclaw.net/blog/post/106.html

通常,你知道wxWidgets,你可能不知道wxPython

跨平台编程资源,c & c++开发能找到项目实例

pthreads-w32-2-7-0-release.tar.gz
pthread source code,you can compile directly (2006-10-17, Unix_Linux, 366KB, 85次)

pthreads.rar
多线程编程,有实例.可参考.希望对大家有用. (2005-03-18, Visual C++, 2KB, 21次)

ThreadsPrimer_AGuideToMultiThreadedProgrammingr.rar
多线程编程的经典资料! PThreads Primer: A Guide to Multithreaded Programming, 作者是Bil Lewis和Daniel J.Berg, 英文原版PDF格式,共370页. (2007-04-18, PDF, 840KB, 17次)

aybook.cn_dxihcbrm0419.rar
PThreads Primerlinux 线程讲得很透彻 (2008-09-03, C-C++, 762KB, 1次)

Pthreads.rar
Pthreads是Intel开发的Linux下的多线程编译工具,能最大发挥Intel最新多核CPU的性能,这里给出一些实验例程以及优化方法。 (2008-08-13, Unix_Linux, 1802KB, 1次)

Thread_Experiment.rar
Write a multithreaded Java, Pthreads, or WIN32 program that outputs prime numbers. This program should work as follows: The user will run the program and will enter a number on the command line. The program will then create a separate thread that outputs all the prime numbers less than or equal to the number entered by the user. (2008-10-02, Java, 1KB, 0次)

sockspy.zip
使用替换wsock32.dll文件来跟踪windows socket api函数的程序 (2001-02-08, Visual C++, 3KB, 1488次)

wal.zip
使用Windows Socket API编写的通用函数,包含异步socket的使用 (2001-01-01, Visual C++, 59KB, 1339次)



socket_program_guide.rar
1.套接字编程原理 1.1 Client/server通信模型 1.2 Windows Sockets规范 1.3 套接字 1.3.1 套接字定义 1.3.2分类 1.3.3 套接字的作用 1.3.4端口与地址 1.3.5 套接口属性 2.基本的Windows Sockets API编程 2.1常用函数 2.2 TCP实例 2.3 UDP实例 2.4 Socket 通信阻塞的解决方法 3.MFC下的Socket编程的类 3.1 CAsyncSocket类 3.2 CSocket类 3.3 Windows Sockets:带存档的套接字的工作方式 3.4 流式套接字通信的操作顺序 3.5 使用 CAsyncSocket 类 3.6 从套接字类派生 3.7 套接字通知 3.8 一个使用CSocket类的网络通信实例 3.8.1 服务器端应用程序设计(ServerDemo) 3.8.2 客户端应用程序设计(项目名称ClientDemo) 4.套接字的托管实现 4.1 System::Net::Sockets 命名空间 4.2 实例:一个新邮件检查器 (2006-09-18, Visual C++, 169KB, 181次)

Dll2Process.rar
动态库注入器 1.0 功能:将一个动态库文件注入到一个正在运行的进程内. 应用:通过注入功能,可以实现对一个进程的api hook,比如写一个dll,然后hook socket api,然后注入到你想监视的进程,这样就能够用于网络数据包的分析了 (2005-12-26, Visual C++, 49KB, 79次)

Multi-thread_management_and_network_program.rar
这是我本科毕业设计的作品。实现了Window下网络通讯编程,包含服务器端和客户端两方面程序。主要实现了以下几个功能:1.Socket API编程,而不是WinSock编程,代码可以很方便地移植到Unix系统下;2. 多线程的管理机制,整个系统由一个主线程、一个管理线程,一个监听线程,若干个工作子线程构成,很好地解决了多线程的管理,资源的释放。3. 程序可以在真实局域网络环境下运行(即在一个主机上运行服务器端程序,在另外多台机器上分别运行一个客户端,可以实现通信),也可以在一个虚拟的环境下运行、演示(即,在一个机器上既运行服务器程序,也可以同时运行多个客户程序,通过设置各个客户程序的IP参数来模拟多台客户机对服务器的访问) (2007-03-22, Visual C++, 717KB, 53次)

网络通信开发.zip
Windows socket API (2004-10-06, WINDOWS, 60KB, 49次)

一个完整的在线更新程序.rar
一个完整的在线更新程序,一个基于Socket的在线更新程序,有以下特点: 1、socket api + 多线程,更新部分放在Dll中,接口简单,调用方便。 2、支持多级目录更新 3、支持Socks5代理 (2005-11-23, Delphi, 463KB, 42次)

SOCKET API通讯程序源代码.zip
winsock编程 (2004-11-24, Visual C++, 43KB, 37次)

Windows Socket API 使用经验.rar
Windows Socket API 使用经验 (2004-11-29, Visual C++, 141KB, 34次)

SOCKET API 聊天室.rar
多人聊天室程序,通过WinSocketAPI 完成的,包括服务器和客户端两部分 (2005-12-05, Visual C++, 117KB, 26次)

winsockapi.rar
Windows Socket API 使用经验,以供大家参考 (2007-04-20, 其他, 4KB, 21次)

variousSockIOMmodels.rar
Samples illustrating the various Winsock I/O models under the following directories: blocking Illustrates the blocking sockets model. This includes blocking client and server samples. nonblocking Illustrates the non-blocking socket model using the select API. Only a server sample is provided. WSAAsyncSelect Illustrates the WSAAsyncSelect socket model. Only a server sample is provided. WSAEventSelect Illustrates the WSAEventSelect socket model. Only a server sample is provided. overlapped Illustrates the overlapped IO model using events.Only a server sample is provided. iocp Illustrates overlapped IO using an IO comletion port.Both a client and server sample are provided. (2008-01-30, C-C++, 77KB, 18次)

WinsockTester.rar
本源码是利用Winsock Api写的一款基于TCP/IP协议的通讯软件对新手学习Windows Socket Api 是很好的资料 (2006-03-07, Delphi, 656KB, 17次)

selfupdate.rar
一个基于Socket的在线更新程序,有以下特点:1、socket api + 多线程,更新部分放在Dll中,接口简单,调用方便。2、支持多级目录更新3、支持Socks5代理4、MSN风格的浮动窗口 (2008-01-10, Visual C++, 463KB, 15次)

aceQQ.rar
一个公司程序附带的工具仿qq功能实现通信。利用windows socket api编写。利用多线程技术。 (2006-10-31, Visual C++, 350KB, 13次)

NBUDPServer.rar
非阻塞模式的UDP通信,本程序是服务端,在WIN32环境下,完成基本的UDP协议通信,SOCKET API的封装,对初学者很有帮助。 (2008-06-03, Visual C++, 3KB, 13次)

NBUDPClient.rar
非阻塞模式的UDP通信,本程序是客户端,在WIN32环境下,完成基本的UDP协议通信,SOCKET API的封装,对初学者很有帮助。 (2008-06-03, Visual C++, 3KB, 13次)
asio-1.0.0.zip
asio-1.0.0.zip; asio-1.0.0.zip;asio-1.0.0.zip (2008-04-14, Visual C++, 2591KB, 1次)

CppSQLite_3_1_demo_and_src.zip
SQLite的c++封装类,包括.net封装 (2006-07-17, Visual C++, 170KB, 80次)

sqlite-source-3_3_17.zip
在WinCE/Windows平台上面使用的数据库,非常高效的查询性能和非常小的footprint (2007-09-22, Visual C++, 576KB, 33次)

SQLite3_MFC.zip
SQLite 3.x的一个C++封装类。基于MFC。SQLite是一种高效的嵌入式数据库。 (2006-10-20, Visual C++, 628KB, 30次)

CppSQLite_demo_and_src.rar
sqlite轻量级数据库,适用于嵌入式系统的开发 (2006-11-13, Visual C++, 322KB, 19次)

sqlite.rar
本源码中应用了sqlite的读写操作 要记着在解压本程序之后不能放在有中文的目录地下 要不然会报错 本程序支持sqlite的插入查询删除等功能 可输入select * from tbArodrome 查看本程序的功能 (2008-06-25, Visual C++, 4740KB, 13次)

SQLite-1.0.36.1-source.zip
sqlite 3.3.8 支持加密的版本 (2006-11-12, Visual C++, 1793KB, 11次)

sqlite-wince-2.8.16.zip
sqlite源码wince移植版,嵌入式移动数据库 (2008-09-01, Visual C++, 363KB, 10次)

sqlite-source-wince.rar
数据库,源码类,直接编译以后在工程中加入,就可以使用了 (2007-10-25, Visual C++, 2150KB, 9次)

sqlite-3_3_7.zip
SQLite原代码.这是一个C语言实现的SQL数据库引擎 (2007-05-24, Visual C++, 172KB, 6次)

sqlite-amalgamation-3_6_1.zip
sqlite 小型数据库底层代码的实现学习数据库底层原理很好的教材 实例 (2008-08-24, Visual C++, 884KB, 5次)

SQLiteDBclass.rar
sqlite 一个很好的库 (2007-12-19, Visual C++, 64KB, 4次)

sqlite-3.5.9.tar.gz
嵌入式数据库sqlite 3.5.9的源代码,很有参考价值 (2008-05-23, Visual C++, 2149KB, 4次)

SqliteTest.rar
Sqlite在windows下的应用,vc++源代码,例程演示了如何应用Sqlite数据库 (2008-05-26, Visual C++, 627KB, 4次)

InsertDlg-06-20.rar
sqlite读写VC例子,很不错,值得收藏研究! (2008-09-04, Visual C++, 197KB, 4次)

CppSQLite_3_1_demo_and_src.zip
提供如何在C++中使用sqlite的一个包装类。sqlite是一个非常方便和高效的嵌入式数据库,可以在多种语言中使用,这个源码展示了如何在C++中方便的使用。 (2008-08-22, Visual C++, 170KB, 4次)

sqlite-source-3_5_0.zip
这是一个开源的数据库系统,值得学习啊, 里面用了SQL语句,与微软的SQL SERVIER,差不了多少 (2008-01-13, Visual C++, 694KB, 3次)

HTTP+sqlite.rar
基于sqlite数据库的HTTP服务器 (2008-06-04, Visual C++, 4741KB, 3次)

sqlite3dll.rar
sqlite 3.5.9的动态链接库及工程,吐血推荐 (2008-05-23, Visual C++, 3445KB, 2次)

sqlitedll-3_3_11.zip
sqlite在VC下调用所需要的DLL文件,适用于VC的sqlite开发 (2007-10-26, Visual C++, 184KB, 2次)

sqlite-3_5_9.zip
一种开源的数据,可以运用到小系统里,比SQL Server不差 (2008-06-30, Visual C++, 214KB, 1次)
fastdb-348.zip
最新版本!fastdb是高效的内存数据库系统,具备实时能力及便利的C++接口。FastDB不支持client-server架构因而所有使用FastDB的应用程序必须运行在同一主机上。 (2008-06-18, Visual C++, 1177KB, 9次)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: libevent是一个开源的C语言网络编程库,主要用于处理高并发网络连接。它提供了对事件驱动的支持,使得开发者可以方便地编写高效的并发网络应用程序。 libevent的核心是事件循环机制。在传统的网络编程中,通常需要使用多线程或多进程来处理并发连接,而使用libevent可以通过一个事件循环来处理多个连接。在事件循环中,可以注册多个事件,并定义回调函数来处理事件的触发。当有事件发生时,libevent会调用相应的回调函数来处理事件的处理逻辑。这样可以大大简化并发编程的复杂性,并提高程序的性能。 libevent的事件模型基于操作系统提供的I/O多路复用机制,如select、poll和epoll等。它可以在不同的操作系统平台上运行,并提供一致的接口和高效的事件处理机制。借助这些机制,libevent可以同时处理大量的并发连接,并保持低延迟和高吞吐量。 除了处理网络连接,libevent还提供了其他常用的功能,如定时器和信号处理等。它允许开发者在事件循环中注册定时器事件,可以用于定时任务的调度。同时,libevent还可以处理来自操作系统的信号,并提供了对信号的处理接口,以便开发者能够处理各种系统事件。 总之,libevent是一个功能强大、简单易用的高并发网络编程库,适用于开发各种类型的网络应用。无论是开发服务器、代理、聊天程序还是实时应用,libevent都能帮助开发者快速编写高性能的并发网络程序。 ### 回答2: libevent是一个开源的C/C++网络库,用于高性能的事件驱动编程。它提供了一个轻量级、可移植的框架,用于开发高并发的网络应用程序。 它的设计目标是提供一个高效的事件处理器,可以处理成千上万个并发连接,并且支持多线程并发处理。libevent基于事件驱动模型,通过异步I/O和回调函数来实现高并发处理网络请求。 libevent提供了一系列的函数来注册和监听各种网络事件,包括读、写、超时和信号等等。当一个事件发生时,libevent会调用相应的回调函数来处理事件。通过这种方式,我们可以非常方便地处理并发连接,并实现高性能的网络编程。 libevent的优点主要包括: 1. 高性能:libevent使用异步I/O和事件驱动模型,能够处理成千上万个并发连接,具有很高的处理能力。 2. 可移植性:libevent提供了统一的接口,可以在多种操作系统上运行,包括Linux、Windows、Mac等。 3. 易用性:libevent简单易用,只需注册感兴趣的事件和相应的回调函数,就可以实现高效的网络编程。 4. 多线程支持:libevent支持多线程并发处理,可以充分利用多核CPU的性能优势。 总之,libevent是一款非常适合高并发网络编程的开源库,它可以帮助我们实现高性能的服务器程序,提升系统的并发处理能力。无论是开发网络服务器还是网络应用程序,libevent都是一个不错的选择。 ### 回答3: libevent 是一个用于高并发网络编程的 C/C++ 库。它提供了一个跨平台的异步事件驱动的网络编程框架,能够实现高效地处理大量并发连接的需求。 libevent 的主要特点包括: 1. 异步事件驱动:libevent 使用事件驱动模型,主要利用非阻塞 I/O 和事件回调机制,能够高效地处理大量并发事件。 2. 跨平台支持:libevent 提供了跨不同操作系统的支持,包括 Windows、Linux、Unix 等,并且提供了统一的 API 接口,方便开发者进行跨平台开发。 3. 支持多种网络协议:libevent 支持 TCP、UDP、HTTP 等多种网络协议,为开发者提供了丰富的网络编程能力。 4. 高性能:libevent 的设计目标之一是高性能,它通过使用多路复用技术,将系统资源高效地利用起来,能够同时处理大量并发连接,并且保持低延迟。 5. 灵活易用:libevent 提供了简洁的 API,使用起来非常方便,可以快速实现高并发网络编程的需求。 总之,libevent 是一个强大而灵活的 C/C++ 库,适用于各种需要处理高并发连接的网络应用程序。无论是开发高性能服务器、代理、负载均衡器还是其他类似应用,libevent 都是一个值得推荐的选择。它的高效性能、跨平台支持和简洁易用的 API 接口使得开发者能够快速构建稳定可靠的高并发网络应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值