net
The net module provides an asynchronous network API for creating TCP servers and clients. Communication uses sockets which are stream-based.
API Surface
Server
net.createServer([options], [connectionListener])— create a TCP server.- server.listen(port[, host], callback) — start listening.
- server.close([callback]) — stop server.
- Events:
'connection': new client socket.'listening','close','error'.
Socket (net.Socket)
- Duplex stream representing connection.
socket.connect(port[, host], [callback])— initiate client connection.socket.write(data)— send data.socket.end([data])— half-close, optionally send final data.- Properties:
socket.remoteAddress,socket.remotePort,socket.localAddress,socket.localPort. - Events:
'data': incoming data chunk.'end': remote closed.'error': error occurred.'close': fully closed.
Examples (English only)
const net = require("net");
// Simple echo server
const server = net.createServer((socket) => {
console.log("Client connected");
socket.on("data", (data) => {
console.log("Received:", data.toString());
socket.write("Echo: " + data);
});
socket.on("end", () => console.log("Client disconnected"));
});
server.listen(3000, () => console.log("Server listening on port 3000"));
// Client example
const client = net.createConnection({ port: 3000 }, () => {
console.log("Connected to server");
client.write("Hello server!");
});
client.on("data", (data) => {
console.log("From server:", data.toString());
client.end();
});
Notes
- TCP is stream-oriented; use
'data'events to accumulate or parse messages. - Always handle errors on both server and client sockets.
- The server can handle multiple concurrent clients.
- Use
endto close a socket gracefully,destroyto force.