Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fumiama/simple-kanban
基于C语言Socket编程的简易公告发布程序
https://github.com/fumiama/simple-kanban
Last synced: 2 months ago
JSON representation
基于C语言Socket编程的简易公告发布程序
- Host: GitHub
- URL: https://github.com/fumiama/simple-kanban
- Owner: fumiama
- License: gpl-3.0
- Created: 2021-05-02T10:56:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-01T02:43:13.000Z (about 1 year ago)
- Last Synced: 2023-12-01T18:07:00.037Z (about 1 year ago)
- Language: C
- Size: 250 KB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
simple-kanban
基于C语言Socket编程的简易公告发布程序
## 准备工作
您需要首先安装[simple-protobuf](https://github.com/fumiama/simple-protobuf),并记住安装路径。如果安装路径不是`/usr/local`,需要手动更改`CMakeLists.txt`的路径指向正确位置。
```bash
git clone https://github.com/fumiama/simple-protobuf.git
cd simple-protobuf
mkdir build
cd build
cmake ..
make
make install
```## 编译
仅适用于类`unix`系统(包括Apple),`windows`下编译请自行将`socket`实现替换为`winsock`
```bash
git clone https://github.com/fumiama/simple-kanban.git
cd simple-kanban
mkdir build
cd build
cmake ..
make
make install
```## 数据格式
1. 看板、数据的报文头部有固定的4字节(小端序),用来标识之后数据的长度,但回复串(succ/erro/null/get/set)则无此头部。
2. PASSWORD、SETPASS位于`server.c`头部,可自行定义。## 服务端使用
> 以下所有交互均可粘连,如:`PASSWORDget100quit`将实现建立连接+获得看板,`PASSWORDcatquit`将建立连接并获取数据。
### 0. 启动程序
```bash
simple-kanban [-d] 7777 1 ./kanban.txt ./data.bin ./cfg.sp
```1. -d为可选项,如果添加,程序将以daemon状态运行。
2. `cfg.sp`为配置文件,通过编译生成的`cfgwriter`生成。
3. `kanban.txt`第一行可以为一串数字,指示版本号。如果无数字,则无条件发送看板。### 1. 建立连接
连接后10秒无下一步操作自动断开。建立连接的操作一次会话只需执行一次。
- 发送:`PASSWORD`字串
### 2. 获得看板
- 发送:get
- 返回:get
- 发送:版本号(一串数字)
- 返回:头+看板(有新消息)/`null`(无新消息)### 3. 获得数据
- 发送:cat
- 返回:头+数据### 4. 设置看板
- 发送:`SETPASS`
- 返回:`SETPASS`
- 发送:ver
- 返回:data
- 发送:头+新的看板
- 返回:succ### 5. 设置数据
- 发送:`SETPASS`
- 返回:`SETPASS`
- 发送:dat
- 返回:data
- 发送:头+新的数据
- 返回:succ### 6. 退出
- 发送:quit## 简易客户端使用
本程序自带一个简易客户端`client.c`,编译后名为`simple-kanban-client`,能够实现所有和服务端的交互功能。
### 0. 启动程序
```bash
./simple-kanban-client 127.0.0.1 7777
```接下来即可按照上面的交互流程开始使用。
### 1. 发送命令
直接输入命令,回车即可。
### 2. 发送文件
键入:file
回车,然后输入文件路径,回车即可。
### 3. 退出
键入:quit
回车即可
## 上传小工具
在`uploader`文件夹有一个上传小工具,用法如下```bash
./push.sh ip port kanban.txt data.bin password setpass
```