Skip to content
This repository was archived by the owner on Apr 27, 2020. It is now read-only.

kekxv/kProxyCpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

最新说明

由于核心代码比较少,所以直接集成到 clangTools 项目,本项目进行归档

kProxyCpp 服务端软件

承接自 kHttpd 项目。

由于 kHttpd 项目使用了 libevent 开源库,其中某些特性导致使用上面不太方面(仅仅指的是我个人而言),所以重新开发了本项目。

功能说明

  1. http server 实现, http server 服务端功能,使用线程池为每个连接进行处理,所以每个请求都可以阻塞(但是并不建议,除非某种特定的场景,例如进行http代理服务,必须等到对方回应,不使用 libevent 其中一个原因)。

  2. WebSocket server 实现,当前项目实现了WebSocket server端代码,可以使用 c/c++ 愉快的开发WebSocket项目,同时WebSocket服务端也支持http server,也就是同一个端口同时使用WebSocket server 以及 http server,使得更方便一些。使用WebSocket server的情况下,请根据实际情况,加大线程数量以及监听数量,否则可能造成后续连接被阻塞。

  3. CGI 功能实现,目前实现 CGI 调用 php,可以使用php作为动态脚本进行开发,不过现在还未实现 phpPOST模式,即还未将 php body数据传入给CGI

为什么要开发本项目

目前的 CPU 性能已经非常好了,同时像 c#phpJavanodejsgo 等等语言对于http server以及WebSocket server开发已经非常棒了,为什么还要造这种轮子呢?

的确,他们非常好,但是某些情况下,我还是喜欢使用 c/c++ 来进行开发(应该有人和我一样吧)。

在某些项目上,需要使用到 OpenCV 进行图像处理,嗯,C# 也有EmguCV以及OpenCVSharp等等,使用起来也很方便,不过总觉得不太方便,可能是 c/c++ 写多了,毕竟身边的大多数人,都是比较喜欢使用 EmguCV以及OpenCVSharp

在上述的这些项目上,如果要发布为WebAPI形式,也有不少的选择,但是基本需要第三方工具(当然用 libevent 等项目也是不错的),我希望能够很简单的就讲项目发布为WebAPI,所以我决定开发了本项目(为什么不用 libeventhttp server呢?emmmmm,前面说了)。

树莓派 zero

目前树莓派 4B 已经出来蛮久的了,性能也很强,不过如果追求的小的解决方案,当时是选择 树莓派zero,但是树莓派zero性能并没有特别优秀,如果使用pythonnodejs之类做服务端的话,你知道我想说什么了吧,没错,可以考虑一下本项目。

当然了,如果想开发整站项目,emmmmm,还是不要选择本项目了吧,太为难自己了,本项目比较适合简单的项目之上。

学习目的

如果想要学习一下 http server 或者 WebSocket server 或者 CGI 实现的话,也可以看看本项目的代码,希望能对你有帮助。

版权问题

如果使用了本项目开发了开源项目或者修改的项目,欢迎贴上本项目链接

当前项目上使用了部分开源或者网络上的代码,如果这些代码是您的,并且有侵犯到您的个人利益,请联系我,我会根据实际情况,在此贴上您的源链接,或者进行修改删除。

About

Proxy Cpp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published