7.9 TCP应答服务器

概念

  • 侦听与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()复制函数也不会进行不必要的内存复制。它从内核接收数据包并将其发回,而不会进一步复杂化。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概念 使用Deno运行时API将文件内容输出到控制台。 Deno.args[https://doc.deno.la...
    9e8aeff1c70c阅读 1,603评论 0 0
  • 第一步 此页面包含一些示例,以教您有关Deno的基础知识。 本文档假定您具有JavaScript的某些先决知识,尤...
    9e8aeff1c70c阅读 2,515评论 0 1
  • 概念 Deno的运行时接口提供了读写整个文本文件的Deno.readTextFile[https://doc.de...
    9e8aeff1c70c阅读 2,865评论 0 2
  • Deno的设计原则之一是没有神奇的解决方案。当tyescript对文件进行类型检查时,它只关心文件的类型,而TSC...
    9e8aeff1c70c阅读 3,783评论 0 1
  • 概念 使用file_server.ts[https://deno.land/std@0.95.0/http/fil...
    9e8aeff1c70c阅读 3,110评论 0 0

友情链接更多精彩内容