C++实现,支持跨平台(Windows,Android,IOS),支持跨语言(C++,C#,Java)的网络库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现,支持跨平台(Windows,Android,IOS),支持跨语言(C++,C#,Java)的网络库相关的知识,希望对你有一定的参考价值。
这个网络库是在 CppNetworkLibrary(http://www.cnblogs.com/winter-yu/p/4688481.html )的基础之上做的一些优化与调整。
具体的亮点如下:
1,支持跨跨平台,包括主流的Windows,android,ios,Linux等等。
2,跨语言,客户端支持C++,C#,Java。服务端目前只支持C++。
3,数据包增加了加密及压缩功能,密码会动态随机修改,而不是双方都使用固定密码,保证了数据包的传输安全。
4,客户端支持P2P的消息传输,而不需要服务器做任何的额外处理。
5,服务端支持集群(理论上并发量跟集群服务器数量及服务器的逻辑复杂度有关),并且集群服务器之间的客户端可以相互发送数据包,没有区服概念。
6,序列化协议采用的是Google Protocol Buffers,所以不同的语言,不同的客户端,都可以相互通信。
7,所有数据包以及网络事件都是通过事件回调,简洁明了,没有任何网络编程经验的程序员也能快速上手。
8,服务端丰富的日志记录,包括关键的崩溃信息,连接数量统计信息等等,方便参考。
9,支持P2P的真实连接,而不是通过服务器转发,直接连接(但连接是否成功跟目标网络接入的NAT设备有关,
如果P2P的两端都是对称型NAT设备,那成功的概率会非常低,但是即使会连接失败也不会影响P2P的数据包传输,因为如果真实连接失败就会走服务器转发的线路)。
C++ demo 及库下载地址:http://pan.baidu.com/s/1pLlERNl
C# demo及库下载地址:http://pan.baidu.com/s/1eSNQTBc
以上是关于C++实现,支持跨平台(Windows,Android,IOS),支持跨语言(C++,C#,Java)的网络库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Win32 和 UWP/Xbox 平台支持管理 C++ 应用程序的最佳实践?