jsrosetta

I/O

TCP Server

net.createServer của Node.js so với net.Listen (Go), TcpListener (Rust), Network.framework (Swift) và ServerSocket (Java) để viết một TCP echo server.

Phiên bản tối thiểu
Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.65Swift ≥ 5.7Java ≥ 25
Đã chạy thử trên
Node.js 24.12.0Go 1.27.1Rust 1.98.1Swift 6.2.4Java 25.0.4.1

Code Node.js là ES module: lưu file .mjs hoặc đặt "type": "module" trong package.json.

Một TCP server chỉ cần: lắng nghe một port, chấp nhận kết nối, rồi đọc/ghi dữ liệu trên từng kết nối. Node.js xử lý mỗi socket bằng event, Go và Rust xử lý mỗi kết nối trong một thread/goroutine riêng (Rust không có goroutine — thread::spawn tạo hẳn một OS thread thật, tốn kém hơn; muốn nhẹ như goroutine phải dùng runtime async như tokio). Swift dùng Network.framework (Apple, không có socket API nào trong Foundation). Java 25 xử lý mỗi kết nối bằng một virtual thread (Thread.ofVirtual(), chính thức từ Java 21) — rẻ gần bằng goroutine, không cần thread pool.

Echo server

import net from 'node:net'
 
function handler(socket) {
  socket.write('Received: ')
  socket.pipe(socket)
}
 
const server = net.createServer(handler)
server.listen(3000)
$ echo 'hello' | nc localhost 3000
Received: hello

Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#tcp-server