# linux-C **Repository Path**: xurongxin2021/linux-c ## Basic Information - **Project Name**: linux-C - **Description**: 存放linux c开发的项目 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-11-04 - **Last Updated**: 2023-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # linux-C #### 介绍 存放linux c开发的项目 #### 软件架构 linux+c #### 安装教程 1. 下载代码到本地 2. make编译 3. 找到bin下的执行文件 #### 使用说明 1. 执行生成的elf文件即可 #### 项目说明 1.项目描述 需求:字典功能 1. 注册功能 1.1 使用用户名和密码登录,检查重复; 2. 登录功能 2.1 使用已注册的用户名和密码登录,不能重复登录; 3. 查询功能 3.1 查询输入的单词; 5. 历史记录功能 5.1 获取用户的输入历史记录; 6. 退出功能 6.1 查看当前在线用户的用户名; 2.设计 代码框架组织 . ├── cli │   ├── cli │   ├── cli.c │   ├── func.c │   ├── func.h │   └── Makefile └── srv ├── Makefile ├── srv ├── srv.c └── words_lib.db 3.用到哪些技术 文件IO、目录操作 网络编程 多线程 无名信号量 时间编程 正则表达式 json库 数据库sqlite3 4.编码实现 编写客户端 编写服务器端 5.调试 1. 在项目文件夹下make编译程序 2. 在srv/目录下启动服务器端程序:./server 192.168.1.56 10000 3. 在cli/目录下启动服务器端程序:./client 192.168.1.56 10000 4. 在出现提示文字cli>: 1).输入1,根据提示注册; 2).输入2,根据提示登录; 3).输入3后再输入单词,获取查询结果; 2).输入5,获取当前历史记录; 3).输入4,退出; 1.项目描述 需求:ftp服务功能 1. 查看目录 1.1 ls 命令 表示查看用户在服务端的目录,默认是根目录; 2. 创建目录 2.1 mkdir 命令 创建服务器端文件夹; 3. 删除目录/文件 3.1 rmdir 命令 删除服务器端文件夹/文件; 4. 切换目录 4.1 cd 命令 在服务器根目录下的不同目录之间切换; 5. 下载功能 5.1 get 命令下载服务器当前目录下的文件; 6. 上传功能(基本和下载功能一致) 6.1 put 命令上传本地文件; 7. 安全退出功能 7.1 quit 命令 在任何目录下输入命令即可退出; 8. 帮助文档功能 8.1 实现两级帮助文档功能 8.2 help 列出所有命令和简介; 8.3 help <命令>理出命令详情解释; 2.设计 代码框架组织 . ├── cli │   ├── bin │   │   └── cli elf文件 │   ├── func │   │   ├── Makefile │   │   └── operate.c 功能程序 │   ├── include │   │   └── operate.h 公共头文件 │   ├── main │   │   ├── cli.c 入口程序 │   │   └── Makefile │   ├── Makefile │   └── obj │   ├── cli.o │   ├── Makefile │   └── operate.o └── srv ├── bin │   └── srv elf文件 ├── fileroot 文件夹根目录 │   └── test ftp中的文件夹 ├── func │   ├── func.c 功能程序 │   └── Makefile ├── include │   └── func.h 公共头文件 ├── main │   ├── Makefile │   └── srv.c 入口程序 ├── Makefile └── obj ├── func.o ├── Makefile └── srv.o 3.用到哪些技术 文件IO、目录操作 网络编程 多线程 互斥锁、条件变量 时间编程 正则表达式 4.编码实现 编写客户端 编写服务器端 5.调试 1. 在cli/和srv/文件夹下make编译程序 2. 在srv/目录下启动服务器端程序:./bin/srv 192.168.1.56 10000 3. 在cli/目录下启动服务器端程序:./bin/cli 192.168.1.56 10000 4. 在出现ftp@/:提示符后,分别执行: (1). help //显示帮助信息 (2). ls . //显示当前目录下的文件和子文件夹 (3). mkdir test123 //创建名字叫test123的文件夹 (4). cd test123 //切换到名字叫test123的文件夹 (5). put /home/ron/Documents/share/sqlite-autoconf-3390400.tar.gz //将sqlite的压缩包上传到test123 (6). get sqlite-autoconf-3390400.tar.gz //将test123目录下sqlite的压缩包下载到本地 (7). rmdir sqlite-autoconf-3390400.tar.gz //删除test123目录下sqlite的压缩包文件 (8). quit //退出服务器登录 1.项目描述 需求:聊天服务功能 1. 注册功能 1.1 使用用户名和密码登录,检查重复; 2. 登录功能 2.1 使用已注册的用户名和密码登录,不能重复登录; 3. 群发功能 3.1 向所有在线用户; 5. 一对一聊天功能 5.1 输入对方的用户名,和此人聊天; 6. 在线用户列表 6.1 查看当前在线用户的用户名; 7. 功能功能 7.1 退出功能; 2.设计 代码框架组织 . ├── chat.h ├── client ├── client.c ├── encrypt.c ├── encrypt.h ├── list.h ├── Makefile ├── members.db ├── server └── server.c 3.用到哪些技术 文件IO、目录操作 网络编程 多线程 无名信号量 时间编程 正则表达式 json库 aes加密 数据库sqlite3 4.编码实现 编写客户端 编写服务器端 5.调试 1. 在项目文件夹下make编译程序 2. 在server/目录下启动服务器端程序:./server 10000 3. 在client/目录下启动服务器端程序:./client 192.168.1.56 10000 4. 在出现提示文字: 0退出 1注册 2登录 3群发 4私聊 5查看在线用户 6退出