1
0
mirror of https://github.com/fumiama/simple-kanban.git synced 2026-06-06 08:50:28 +08:00

优化客户端逻辑,完善README

This commit is contained in:
fumiama
2021-05-03 20:48:25 +08:00
parent 2d31558345
commit 343d814560
2 changed files with 51 additions and 16 deletions

View File

@@ -3,7 +3,7 @@
# 编译
仅适用于`unix`系统,`windows`下编译请自行将`socket`实现替换为`winsock`
仅适用于`unix`系统包括Apple`windows`下编译请自行将`socket`实现替换为`winsock`
```bash
git clone https://github.com/fumiama/simple-kanban.git
@@ -16,47 +16,79 @@ make
# 数据格式
1. 看板、数据的报文头部有固定的4字节用来标识之后数据的长度但回复串succ/erro/null/get/set无此头部。
1. 看板、数据的报文头部有固定的4字节(小端序)用来标识之后数据的长度但回复串succ/erro/null/get/set无此头部。
2. PASSWORD、SETPASS位于`server.c`头部,可自行定义。
# 使用
# 服务端使用
0. 启动程序
## 0. 启动程序
```bash
./simple-kanban -d 7777 1 ./kanban.txt ./data.bin
./simple-kanban [-d] 7777 1 ./kanban.txt ./data.bin
```
1.`PASSWORD`连接连接后10秒无下一步操作自动断开
其中-d为可选项如果添加程序将以daemon状态运行。
## 1. 建立连接
连接后10秒无下一步操作自动断开。建立连接的操作一次会话只需执行一次。
- 发送:`PASSWORD`字串
2. 获得看板
## 2. 获得看板
- 发送get
- 返回get
- 发送:版本号(一串数字)
- 返回:看板(有新消息)/`null`(无新消息)
- 返回:头+看板(有新消息)/`null`(无新消息)
3. 获得数据
## 3. 获得数据
- 发送cat
- 返回:数据
- 返回:头+数据
4. 设置看板
## 4. 设置看板
- 发送set
- 返回set
- 发送ver+`SETPASS`
- 返回data
- 发送:新的看板
- 发送:头+新的看板
- 返回succ
5. 设置数据
## 5. 设置数据
- 发送set
- 返回set
- 发送dat+`SETPASS`
- 返回data
- 发送:新的数据
- 返回succ
- 发送:头+新的数据
- 返回succ
# 简易客户端使用
本程序自带一个简易客户端`client.c`,编译后名为`simple-kanban-client`,能够实现所有和服务端的交互功能。
## 0. 启动程序
```bash
./simple-kanban-client 127.0.0.1 7777
```
接下来即可按照上面的交互流程开始使用。
## 1. 发送命令
直接输入命令,回车即可。
## 2. 发送文件
键入file
回车,然后输入文件路径,回车即可。
## 3. 退出
键入quit
回车即可

View File

@@ -90,7 +90,10 @@ int main(int argc,char *argv[]) { //usage: ./client host port
fclose(fp);
printf("Send count:%lld\n", len);
} else puts("Open file error!");
} else send(sockfd, buf, strlen(buf), 0);
} else {
send(sockfd, buf, strlen(buf), 0);
if(!strcmp(buf, "quit")) exit(EXIT_SUCCESS);
}
sleep(1);
}
} else perror("Create msg thread failed");