Skip to content

Commit 1a7a2c1

Browse files
Replace muduo with asio
1 parent b1565a9 commit 1a7a2c1

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/lab6/lab6.6-redis-server.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
这一部分内容其实也很简单,网络框架作者已经为你搭建好了,你只需要实现`Resp`请求的解析, 利用解析出的参数调用我们之前实现的各个命令的接口即可。
66

7+
> 在初版的`Lab`中, 我们使用了`muduo`作为网络框架, 但由于`muduo`仅支持`Linux`, 因此在后续版本中我们将其替换为`asio`, 这是一个跨平台的网络库, 支持`Windows`, `MacOS``Linux`。使用`asio`后,本实验可以在所有主流操作系统上运行: `Linux`+`MacOS`+`Windows`(`Wsl`)
8+
79
# 2 代码实现
810
这节课你可以修改`server`文件夹下的任何文件
911
```bash
@@ -17,15 +19,25 @@
1719

1820
你需要实现的接口为:
1921
```cpp
20-
// server/src/server.cpp
21-
std::string handleRequest(const std::string &request) {
22+
std::string handleRequest(const std::string &request) {
2223
// TODO: Lab 6.6 处理网络传输的RESP字节流
2324
// TODO: Lab 6.6 形成参数并调用 redis_wrapper 的api
2425
// TODO: Lab 6.6 返回结果
25-
return "";
26-
}
26+
return "";
27+
}
2728
```
2829
30+
> 如果你做得是初版的`Lab`, 这里实现的接口有所差异:
31+
> ```cpp
32+
> // server/src/server.cpp
33+
> std::string handleRequest(const std::string &request) {
34+
> // TODO: Lab 6.6 处理网络传输的RESP字节流
35+
> // TODO: Lab 6.6 形成参数并调用 redis_wrapper 的api
36+
> // TODO: Lab 6.6 返回结果
37+
> return "";
38+
> }
39+
> ```
40+
2941
`handleRequest`前后的网络包收发逻辑已经为你写好, 你只需要在这个函数中解析`RESP`协议, 调用`redis_wrapper`的接口即可。当然, 你也可以直接新增各种辅助函数。
3042
3143
> 除了我们之前实现的各种命令外, 你还需要实现`PING`命令, 这个命令不需要任何参数, 只需要返回`"+PONG\r\n"`即可。其内在含义表示服务器正在运行。

0 commit comments

Comments
 (0)