感谢您对计算机网络实习项目的贡献兴趣! / Thank you for your interest in contributing to the Computer Network Internship Project!
如果您发现了bug或有新功能建议,请:
- 检查现有的Issues确保问题未被报告
- 创建新Issue并提供详细描述
- 包含复现步骤、预期行为和实际行为
- 提供系统环境信息(操作系统、编译器版本等)
# 1. Fork并克隆仓库
git clone https://github.com/your-username/Computer_Network_Internship.git
cd Computer_Network_Internship
# 2. 安装依赖
make install_deps_ubuntu # Ubuntu/Debian
# 或 make install_deps_centos # CentOS/RHEL
# 3. 编译测试
make
make test- 创建分支:
git checkout -b feature/your-feature-name - 编写代码: 遵循项目编码规范
- 测试代码: 确保所有测试通过
- 提交更改:
git add . git commit -m "feat: 添加新功能描述"
- 推送分支:
git push origin feature/your-feature-name - 创建Pull Request
- 缩进: 使用4个空格,不使用Tab
- 命名:
- 函数名使用snake_case:
handle_client() - 变量名使用snake_case:
client_sock - 常量使用全大写:
BUF_SIZE
- 函数名使用snake_case:
- 注释:
- 函数前添加简洁的功能说明
- 复杂逻辑添加行内注释
- 使用中英文双语注释
/**
* 处理客户端连接
* Handle client connection
*/
void handle_client(int client_sock) {
char buffer[BUF_SIZE] = {0};
// 接收客户端数据 / Receive client data
int bytes = recv(client_sock, buffer, sizeof(buffer) - 1, 0);
if (bytes <= 0) {
close(client_sock);
return;
}
// 处理请求逻辑 / Process request logic
process_request(buffer);
}在提交PR前,请确保:
- 代码编译无警告:
make - 语法检查通过:
make test_syntax - 功能测试通过:
- HTTP服务器能正常启动和响应
- FTP服务器支持多客户端连接
- FTP客户端能正确执行所有命令
- 内存泄漏检测:
valgrind ./server(可选但推荐)
使用语义化提交信息:
<type>: <description>
[optional body]
[optional footer]
提交类型:
feat: 新功能fix: bug修复docs: 文档更新style: 代码格式修改refactor: 重构代码test: 测试相关chore: 构建过程或辅助工具变动
示例:
feat: 添加FTP服务器断点续传功能
- 实现RESUME命令支持
- 添加文件偏移量检测
- 更新客户端界面
Closes #123
- 🔒 安全性增强: SSL/TLS支持、输入验证、权限控制
- 🚀 性能优化: 异步I/O、连接池、缓存机制
- 🌐 协议完善: HTTP/2支持、更多FTP命令、IPv6支持
- 🧪 测试覆盖: 单元测试、集成测试、压力测试
- 📊 Web界面美化和功能增强
- 📱 移动端适配
- 🔍 日志系统和监控
- 📈 统计和分析功能
- 🌍 国际化支持
文档同样重要!您可以帮助:
- 改进README文档
- 添加代码注释
- 编写使用教程
- 翻译项目文档
- 制作项目演示视频
如果您有任何问题:
- 查看项目Wiki
- 在Discussions中提问
- 查看现有Issues寻找相似问题
感谢每一位贡献者的努力!您的贡献将出现在项目的Contributors页面。
- 代码贡献者会自动显示在GitHub Contributors中
- 重要功能贡献者将在README中特别感谢
- 文档和测试贡献同样重要和有价值
通过贡献代码,您同意您的贡献将在与本项目相同的MIT许可证下授权。
再次感谢您的贡献!Together we make it better! 🚀