coolproxy:事件驱动的 HTTP 代理

时间:2024-07-31 09:44:07
【文件属性】:

文件名称:coolproxy:事件驱动的 HTTP 代理

文件大小:29KB

文件格式:ZIP

更新时间:2024-07-31 09:44:07

C

酷代理 网络代理服务器。 使用单线程基于 epoll 的事件循环实现。 处理并发连接。 在上游端处理持久连接方面有一些工作,但在客户端还没有。 用法 make make test ./coolproxy 设计选择 该程序被组织成类似类的模块。 在每个模块中,我们都尝试遵循一致的面向对象风格,其中函数的第一个参数是模块类型的结构,函数名称以模块名称开头。 为了简单和可重用性,模块在可能的情况下使用回调(continuation-passing 风格)解耦。 它们将状态存储在对象/结构中,而不是使用全局变量。 这些模块用于服务器、客户端、工作器、HTTP 解析器和事件循环。 事件循环模块复用 IO,并在其他模块的套接字接收数据时通过回调传递控制权。 它运行一次并在整个程序执行过程中保持运行。 HTTP 解析器模块在客户端和工作端处理 HTTP 请求和响应、标头和数据。


【文件预览】:
coolproxy-master
----.gitignore(41B)
----Makefile(789B)
----src()
--------http_parser.h(1KB)
--------http_parser.c(8KB)
--------proxy_worker.c(9KB)
--------proxy_server.c(4KB)
--------eventloop.h(460B)
--------proxy_client.c(9KB)
--------proxy_server.h(612B)
--------util.c(2KB)
--------coolproxy.c(833B)
--------proxy_worker.h(2KB)
--------util.h(541B)
--------proxy_client.h(477B)
--------eventloop.c(2KB)
----stylecheck.awk(279B)
----LICENSE(34KB)
----test-curl.sh(245B)
----README.md(4KB)

网友评论