|
|
@ -10,7 +10,7 @@ $ mv src/main.rs examples/hello-redis.rs
|
|
|
|
然后再重新创建一个空的 `src/main.rs` 文件,至此换挡已经完成,提速正式开始。
|
|
|
|
然后再重新创建一个空的 `src/main.rs` 文件,至此换挡已经完成,提速正式开始。
|
|
|
|
|
|
|
|
|
|
|
|
## 接收 sockets
|
|
|
|
## 接收 sockets
|
|
|
|
作为服务器端,最基础的工作无疑是接收外部进来的 TCP 连接,可以通过 `tokio::net::TcpListene` 来完成。
|
|
|
|
作为服务器端,最基础的工作无疑是接收外部进来的 TCP 连接,可以通过 `tokio::net::TcpListener` 来完成。
|
|
|
|
|
|
|
|
|
|
|
|
> Tokio 中大多数类型的名称都和标准库中对应的同步类型名称相同,而且,如果没有特殊原因,Tokio 的 API 名称也和标准库保持一致,只不过用 `async fn` 取代 `fn` 来声明函数。
|
|
|
|
> Tokio 中大多数类型的名称都和标准库中对应的同步类型名称相同,而且,如果没有特殊原因,Tokio 的 API 名称也和标准库保持一致,只不过用 `async fn` 取代 `fn` 来声明函数。
|
|
|
|
|
|
|
|
|
|
|
@ -308,4 +308,4 @@ async fn process(socket: TcpStream) {
|
|
|
|
|
|
|
|
|
|
|
|
Bingo,在看了这么多原理后,我们终于迈出了小小的第一步,并获取到了存在 `HashMap` 中的值: `got value from the server; result=Some(b"world")`。
|
|
|
|
Bingo,在看了这么多原理后,我们终于迈出了小小的第一步,并获取到了存在 `HashMap` 中的值: `got value from the server; result=Some(b"world")`。
|
|
|
|
|
|
|
|
|
|
|
|
但是问题又来了:这些值无法在 TCP 连接中共享,如果另外一个用户连接上来并试图同时获取 `hello` 这个 `key`,他将一无所获。
|
|
|
|
但是问题又来了:这些值无法在 TCP 连接中共享,如果另外一个用户连接上来并试图同时获取 `hello` 这个 `key`,他将一无所获。
|
|
|
|