From 343d81456069b2b2ab1066e45eaae09ee4fccab2 Mon Sep 17 00:00:00 2001 From: fumiama Date: Mon, 3 May 2021 20:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=AE=8C=E5=96=84README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 62 +++++++++++++++++++++++++++++++++++++++++-------------- client.c | 5 ++++- 2 files changed, 51 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 738a1bb..b4ea6c5 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file +- 发送:头+新的数据 +- 返回:succ + +# 简易客户端使用 + +本程序自带一个简易客户端`client.c`,编译后名为`simple-kanban-client`,能够实现所有和服务端的交互功能。 + +## 0. 启动程序 + +```bash +./simple-kanban-client 127.0.0.1 7777 +``` + +接下来即可按照上面的交互流程开始使用。 + +## 1. 发送命令 + +直接输入命令,回车即可。 + +## 2. 发送文件 + +键入:file + +回车,然后输入文件路径,回车即可。 + +## 3. 退出 + +键入:quit + +回车即可 \ No newline at end of file diff --git a/client.c b/client.c index 09902b6..c7bb934 100644 --- a/client.c +++ b/client.c @@ -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");