Coder Social home page Coder Social logo

jqnetwork's Introduction

介绍

JQNetwork,为 Jason Qt Netowrk 的简称

JQNetwork是基于Qt开发,并且未使用除了 C++标准库 和 Qt 之外的第三方库,保证了库的可移植性以及库的纯粹性

所有的传输数据的地方,都使用了TCP长连接,保证了传输数据的可靠性

用到的Qt库有:

  • core
  • network
  • concurrent
  • qml(扩展,非必须)
  • testlib(测试用,运行不需要)

理论上可以部署到任何Qt支持的平台上。

推荐使用Linux系统或者Unix系统,因为在5.7后,Qt更换了Unix相关系统的底层模型,从select更换为了poll,这样改进后,并发就脱离了1024个的限制。

使用本库,需要 Qt5.7.0 或者更高版本,以及支持 C++14 的编译器(VS2015或者更高),对操作系统无要求。

本库源码均已开源在了GitHub上。

GitHub地址:https://github.com/188080501/JQNetwork

方便的话,帮我点个星星,或者反馈一下使用意见,这是对我莫大的帮助。

若你遇到问题、有了更好的建议或者想要一些新功能,都可以直接在GitHub上提交Issues:https://github.com/188080501/JQNetwork/issues

或者直接邮件我,我的邮箱是:[email protected]

功能

功能 状态 实现版本
TCP长连接 已实现 V0.1
全双工 已实现 V0.1
全异步 已实现 V0.1
多线程 已实现 V0.1
大数据量支持 已实现 V0.2
小数据包插队传输 已实现 V0.2
数据压缩 已实现 V0.3
局域网自组网 已实现 V0.4
大文件传输支持 已实现 V0.5
SSL支持 等待开发 V1.0

性能介绍

本库性能只能说一般般,底层是poll注定了性能不是强项,以下是我在我电脑( iMac(i5-4670) + 127.0.0.1 )上,测出的性能。

  • 1个TCP长连接(127.0.0.1)向服务端连续发送 4Byte 数据,服务端连续返回 4Byte 数据,每秒可以达 36569 次

  • 1个TCP长连接(127.0.0.1)向服务端连续发送 32KB 数据,服务端连续返回 32KB 数据,每秒可以达 3430 次,单向载荷传输速度可以达 856 Mbit/s

  • 1个TCP长连接(127.0.0.1)与服务端来回发送(PingPong) 4Byte 数据,每秒可以达 13559 次

  • 1个TCP长连接(127.0.0.1)与服务端来回发送(PingPong) 32KB 数据,每秒可以达 9723 次,单向载荷传输速度可以达 2424 Mbit/s

  • 1个TCP长连接(127.0.0.1)发送 512MB 数据到服务端,耗时 1111 毫秒,单向载荷传输速度可以达 3686 Mbit/s

模块介绍

  • JQNetworkFoundation

    基础库

  • JQNetworkPackage

    数据包

  • JQNetworkConnect

    连接对象

  • JQNetworkConnectPool

    连接池

  • JQNetworkServer

    服务端

  • JQNetworkProcessor

    服务端处理器(处理数据)

  • JQNetworkClient

    客户端

  • JQNetworkLan

    局域网功能

jqnetwork's People

Contributors

188080501 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.