TCP echo 伺服器
概念
- 使用 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()
方法也不會進行不必要的記憶體複製。它會從核心接收封包,並傳送回去,而不會有其他複雜性。