项目简介
本项目是基于C语言的网络服务器项目,名为JIVE Assignment,主要用于处理客户端的AOR(Address of Record)查询请求。服务器会从注册文件中读取并解析数据,将其存储在内存里,再通过TCP连接响应客户端的查询请求。项目包含服务器和客户端两个模块,支持并发处理多个客户端连接。
项目的主要特性和功能
- 注册文件处理:服务器从指定注册文件读取数据,以键值对形式(键为AOR,值为注册记录)存储在内存中。
- TCP服务器:启动TCP监听器等待客户端连接,每个客户端连接由独立线程处理,支持并发请求。
- 客户端查询:客户端发送AOR值,服务器根据该值返回相应注册记录,若AOR不存在则返回空行。
- 超时机制:服务器在10秒内未收到客户端数据时关闭连接。
- 简单日志系统:提供基本日志记录功能,用于调试和追踪问题。
安装使用步骤
假设用户已经下载了本项目的源码文件,可按以下步骤操作:
1. 编译项目:
bash
cd evaluation/evaluation
make
2. 准备注册文件:
bash
cp ../doc/input.json ../target/bin/ilinux/debug
3. 启动服务器:
bash
cd ../target/bin/ilinux/debug
./server 8080 input.json
4. 启动客户端:
bash
./client 127.0.0.1 8080
注意事项
- 环境要求:项目在Intel Ubuntu 16.04上开发,依赖于
libpthreads
库。 - 注册文件格式:需确保注册文件格式正确,否则服务器可能停止运行。
- 并发连接:服务器支持并发处理多个客户端连接,每个连接由独立线程处理。
已知限制和问题
- 日志系统:日志系统较简单,无日志级别,且在发布版本中无法禁用。
- 错误处理:服务器遇到错误可能直接停止运行,而非尝试恢复。
- 便携性:项目主要在Intel Ubuntu 16.04上开发,未在其他环境充分测试。
- 边界情况:项目主要处理常见使用案例,对边缘情况处理可能有限。
许可证
该项目采用MIT许可证,详细信息请参阅项目根目录下的LICENSE文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】