TCP 回声服务器
概念 跳转到标题
- 使用 Deno.listen 监听 TCP 端口连接。
- 使用 Deno.Conn.readable 和 Deno.Conn.writable 来接收入站数据并将其重定向为出站数据。
示例 跳转到标题
这是一个服务器的示例,它在端口 8080 上接受连接,并将客户端发送的任何内容返回给客户端。
/**
* echo_server.ts
*/
const listener = Deno.listen({ port: 8080 });
console.log("listening on 0.0.0.0:8080");
for await (const conn of listener) {
conn.readable.pipeTo(conn.writable);
}
运行命令
deno run --allow-net echo_server.ts
要测试它,请尝试使用 netcat(仅限 Linux/MacOS)向它发送数据。下面 'hello world'
通过连接发送,然后被回显给用户
$ nc localhost 8080
hello world
hello world
与 cat.ts 示例 一样,这里的 pipeTo()
方法也不会进行不必要的内存复制。它从内核接收数据包并发送回,没有额外的复杂性。