3.1.介绍并开始
预备和开始
预备阶段
我们的聊天程序将使用基于TCP的简单文本协议。
该协议由utf-8消息组成,由\ n
分隔。
客户端连接到服务器,并把第一行作为登录信息发送出去。
之后,客户端可以使用以下语法将消息发送给其他客户端:
login1, login2, ... loginN: message
每个指定客户端之后都会接受到一个from login: message
信息。
一个会话看上去应该是这个样子:
在Alice的电脑上: | 在Bob的电脑上:
> alice | > bob
> bob: hello < from alice: hello
| > alice, bob: hi!
< from bob: hi!
< from bob: hi! |
聊天服务器的主要挑战是跟踪数量巨大的并发连接。聊天客户端的主要挑战是管理并发的传出消息、传入消息和用户输入。
开始
让我们使用cargo创建一个新的项目,并进入该项目目录:
cargo new a-chat
cd a-chat
添加一下依赖到cargo.toml
[dependencies]
futures = "0.3"
async-std = "1"
当然你也可以直接在终端使用一下命令直接添加上述依赖:
cargo add futures async-std
聊天服务器的主要难点是追踪多个并发连接,而聊天客户端的主要难点是管理发送消息,接收消息和用户输入的并发。
开始
创建新的 Cargo 项目:
$ cargo new a-chat
$ cd a-chat
将以下内容加入 Cargo.toml
中:
[dependencies]
futures = "0.3.0"
async-std = "1"
原文链接:book.async.rs/
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。