Chops Net IP是一个C ++库,它使异步网络编程变得有趣。或者至少在不有趣的情况下,它可以使网络编程更加轻松,更安全,而不会显着牺牲性能。 Chops Net IP处理Internet协议(IP)通信,包括TCP,UDP和UDP Multicast。它是使用现代C ++设计成语和最新(2017)C ++标准编写的。
Chops Net IP不像任何其他高级通用C ++套接字库。
Chops Net IP利用ASIO提供的可移植性和功能,将IP分层放在ASIO异步网络库的顶部。但是,与针对ASIO API进行编码相比,它简化了网络编程,同时通过异步设施提供了简单的可扩展性。
Travis CI构建状态:
主分支|开发分支|
GitHub动作CI构建状态:
最新标签:
截至2020年1月,第1.0版正在开发,等待CMAKE增强功能,全面的教程以及在多个编译器和平台下进行的其他测试。
发行说明和即将发布的开发计划可在此处提供。
该项目根据Boost软件许可分配:
对于许多软件开发人员来说,C ++中的异步网络编程并不容易。它很复杂,有很多陷阱,并且需要以不自然的方式设计C ++代码,即使对于那些经验多年的人也是如此。将NET IP(“ C” Onnosever“ H”和Cruptived的“ Op” enWork“ oftware”,通过Internet协议进行网络)简化了异步网络编程,并为许多类型的通信模式提供了有用的(和美味的!)抽象。
Chops Net IP分层位于Chris Kohlhoff的ASIO库(请参阅参考文献)的顶部,使其可以在许多编译器和平台上便携。当C ++网络TS被标准化时(可能是C ++ 23,更可能C ++ 26),排骨净IP将直接使用C ++标准库的网络设施。
Chops Net IP简化了应用程序代码,该代码在多个同时进行TCP连接或UDP端点上处理数据。所有印章净IP操作(从应用程序角度来看)是不在等(即没有阻止方法),并且所有网络处理操作均异步执行。
碎片净IP功能:
Chops Net IP旨在使应用程序可以轻松有效地创建数百(或数千个)网络连接并同时处理它们。特别是,在作用网络IP中没有线程或线程池,它仅与一个应用程序线程一起调用事件循环(当前C ++术语中的执行程序),它可以很好地工作。
示例环境中的封闭净知识IP非常合适:
示例演示程序在/example目录中。
simple_chat_demo.cpp程序具有多个设置工作示例的步骤的列表。
详细的概述,C ++套接字库比较和常见问题解答。
C ++ 17是该存储库的主要基线。有关可能的替代方案的其他注释。
生产外部依赖性:
asio库1.13版(或更高版本)。请注意,它是独立的ASIO库,而不是Boost ASIO版本。utility-rack库,该库是与Chops Net IP相同的GitHub帐户中的存储库。测试外部依赖性:
Catch2库的2.8.0版(或更高版本)。从各个github存储库中,有一些单个文件标头已复制到utility-rack存储库的third_party目录中,并且不需要任何外部依赖关系管理。这些都是:
expected-lite图书馆。有关其他详细信息,请参见参考。
Chops Net IP已被编译,测试进行了:
请按照CI链接进行其他构建环境。
Chops Net IP仅是标头,因此安装包括下载或克隆和设置编译器适当地包含路径。没有定义编译时间配置宏。
有关依赖性和作品的详细信息,请参见参考。
团队成员信息可在此处获得。
这里有一些“悬崖笔记”。