我想知道是否有一个API可以在Windows,Mac和Linux上工作。我想制作一个2人可以通过TCP连接玩的纸牌游戏。跨平台网络API
跨平台网络API
回答
这有几个选择,一些比别人更容易使用:
APR(Apache可移植运行时) - 很受欢迎。非常容易使用。包含许多用于网络编程(线程,互斥等)的附加功能。
ACE - 在嵌入式空间中很受欢迎。就我个人而言,我发现它是一个相当复杂的API,不太直接使用。
Boost - 如果你的C++(模板,元编程等)具有相当的复杂程度,那么Boost库通常非常好。我不确定Boost异步网络库在真实世界中的受欢迎程度。
QT - 作为UI工具包很受欢迎,但拥有一套完善的线程,事件管理和网络库。国际海事组织,这是迄今为止最容易使用的。
它从使用Berkeley套接字库走就走是很重要的,因为跨操作系统的实现差异很大,你将失去的时间公平位调整他们为你的端口跨操作系统的软件。
我的个人偏好:APR。
大部分的berkeley sockets api都可以使用。
我有一种感觉,Apache Portable Runtime可能会帮助您寻找。 Apache HTTPD在内部使用该库来抽象其特定于平台的代码,以便服务器代码专注于逻辑并调用APR中的方法,并将这些方法转化为底层操作系统功能。
当然,它可能含有更多的工具比你严格需要...
你看过APR吗?这是巨大而复杂的。 – 2010-02-06 22:31:44
巨大 - 真实,但这是从操作系统API提供抽象的必要条件 - Java,真正的或.Net也是如此。关于复杂 - 不要再提供其他选择。正如另一个答案指出的那样,APR提供了一些优秀的线程API,因为httpd已经广泛地测试了这个空间。 – 2010-02-06 22:53:26
您可以使用ACE或Boost.Asio:
关于ACE:
增强了便携性 - ACE组件可以很容易地写上一个操作系统平台,快速端口并发的网络化应用他们到许多其他操作系统平台。而且,由于ACE是开源的免费软件,因此您无需担心被锁定到特定的操作系统平台或编译器配置中。
关于提升:
Boost.Asio的是网络和低级别的I/O设计,提供开发人员使用现代C++的做法一致的异步模型一个跨平台的C++库。
是好的跨平台网络库。开源并且非常易于使用。
SDL Net是在插座上面一个非常简单的抽象层,这是非常容易使用。请参阅http://www.libsdl.org/projects/SDL_net。
对于这个简单的应用程序,您可以使用大多数便携式的标准“伯克利插座”功能。您也可以使用Boost's abstractions。
如果你需要像SSL安全功能/ TLS(你并不需要一个简单的游戏,我猜),有喜欢的OpenSSL,GNU TLS,Mozilla的NSS开源库。
- 1. 跨平台,稳定,具有很强的网络平台功能
- 2. S.M.A.R.T.跨平台API?
- 3. 社交网络平台与其余api
- 4. 跨平台推送API
- 5. 是否有适用于iPhone的跨平台网络库?
- 6. 跨平台的C + +网络(没有大型图书馆)
- 7. 适用于iPhone的最佳跨平台网络框架Dev
- 8. C中的跨平台网络二进制文件比较?
- 9. 播放跨平台网络视频的标准方式
- 10. 用于C++和Java的简单跨平台网络框架/库
- 11. 最适合网络服务器的跨平台解决方案?
- 12. 开发一个Java跨平台库(手机和网络)
- 13. C++跨平台网络摄像头流式传输插座
- 14. 跨平台
- 15. Android跨平台
- 16. SWIG跨平台
- 17. 跨平台Bonjour
- 18. 跨平台C?
- 19. MD5跨平台
- 20. 跨平台CSRF
- 21. 跨平台
- 22. 跨平台 - 在
- 23. 跨平台移动API - 寻求建议
- 24. xamarin,跨平台的声音API播放
- 25. 跨平台简单的TCP/IP API?
- 26. MonoTouch - 跨平台API抽象层?
- 27. 跨平台的C#媒体API
- 28. Android开发跨平台到iOS平台
- 29. 跨平台移动平台编程
- 30. 跨平台框架
您也可以使用SDL_net! – luddbro 2015-04-15 20:16:05