evt-tls 项目教程
evt-tlsThe asynchronous TLS abstraction for OpenSSL项目地址:https://gitcode.com/gh_mirrors/ev/evt-tls
1. 项目的目录结构及介绍
evt-tls/
├── src/
│ └── evt_tls.c
├── include/
│ └── evt_tls.h
├── sample/
│ └── libuv-tls/
│ ├── main.c
│ └── Makefile
├── README.md
├── LICENSE
└── .gitignore
- src/: 包含项目的主要源代码文件
evt_tls.c
。 - include/: 包含项目的头文件
evt_tls.h
。 - sample/: 包含示例代码,特别是与
libuv
集成的示例libuv-tls
。 - README.md: 项目的介绍和使用说明。
- LICENSE: 项目的开源许可证。
- .gitignore: 指定 Git 版本控制系统忽略的文件和目录。
2. 项目的启动文件介绍
项目的启动文件位于 sample/libuv-tls/main.c
。以下是该文件的主要内容和功能介绍:
#include "uv_tls.h"
void on_connect_cb(uv_stream_t *server, int status) {
// 处理连接回调
}
int main() {
uv_loop_t *loop = uv_default_loop();
int port = 8000;
evt_ctx_t ctx;
struct sockaddr_in bind_local;
evt_ctx_init_ex(&ctx, "server-cert.pem", "server-key.pem");
evt_ctx_set_nio(&ctx, NULL, uv_tls_writer);
uv_tcp_t listener_local;
uv_tcp_init(loop, &listener_local);
listener_local.data = &ctx;
uv_ip4_addr("127.0.0.1", port, &bind_local);
uv_tcp_bind(&listener_local, (struct sockaddr*)&bind_local, 0);
uv_listen((uv_stream_t*)&listener_local, 128, on_connect_cb);
printf("Listening on %d\n", port);
uv_run(loop, UV_RUN_DEFAULT);
evt_ctx_free(&ctx);
return 0;
}
- main(): 主函数,初始化事件循环、TLS 上下文、监听器,并开始监听指定端口。
- on_connect_cb(): 连接回调函数,处理新连接。
3. 项目的配置文件介绍
项目的主要配置在 main.c
中通过代码进行设置,包括证书和密钥文件的路径、监听地址和端口等。以下是配置相关的代码片段:
evt_ctx_init_ex(&ctx, "server-cert.pem", "server-key.pem");
evt_ctx_set_nio(&ctx, NULL, uv_tls_writer);
uv_ip4_addr("127.0.0.1", port, &bind_local);
- evt_ctx_init_ex(): 初始化 TLS 上下文,指定服务器证书和密钥文件。
- evt_ctx_set_nio(): 设置网络 I/O 处理函数。
- uv_ip4_addr(): 设置监听地址和端口。
以上是 evt-tls
项目的基本教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这些内容能帮助你更好地理解和使用该项目。
evt-tlsThe asynchronous TLS abstraction for OpenSSL项目地址:https://gitcode.com/gh_mirrors/ev/evt-tls