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,androidios,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)的网络库的主要内容,如果未能解决你的问题,请参考以下文章

单线程实现同时监听多个端口(windows平台c++代码)

Windows平台开发实用工具(C++)

Qt和C++关系

使用 Win32 和 UWP/Xbox 平台支持管理 C++ 应用程序的最佳实践?

基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)

基于C++(QT框架)设计的网络摄像头项目(支持跨平台运行)