概念
- 侦听与Deno.listen.的tcp端口连接。
- 使用Deno.copy工具获取入站数据,并将其重定向为出站数据
例子
这是一个服务器示例,它接受端口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) {
Deno.copy(conn, conn).finally(() => conn.close());
}
运行它:
deno run --allow-net echo_server.ts
要对其进行测试,请尝试使用netcat操作系统(仅限linux/macOS)向其发送数据。下面的hello world‘
是通过连接发送的,然后回显给用户:
$ nc localhost 8080
hello world
hello world
与cat.ts example一样,这里的copy()
复制函数也不会进行不必要的内存复制。它从内核接收数据包并将其发回,而不会进一步复杂化。